Nvidia update caused GBM_BACKEND=nvidia-drm to not work

What happened?

Updated everything using yay -Syu

updates:

[2023-03-25T13:32:20+0530] [ALPM] upgraded m4 (1.4.19-2 -> 1.4.19-3)
[2023-03-25T13:32:20+0530] [ALPM] upgraded bison (3.8.2-4 -> 3.8.2-5)
[2023-03-25T13:32:21+0530] [ALPM] upgraded cmake (3.26.0-1 -> 3.26.1-1)
[2023-03-25T13:32:21+0530] [ALPM] upgraded flex (2.6.4-4 -> 2.6.4-5)
[2023-03-25T13:32:21+0530] [ALPM] upgraded gdb-common (13.1-1 -> 13.1-2)
[2023-03-25T13:32:21+0530] [ALPM] upgraded libelf (0.188-3 -> 0.189-1)
[2023-03-25T13:32:21+0530] [ALPM] upgraded gdb (13.1-1 -> 13.1-2)
[2023-03-25T13:32:21+0530] [ALPM] upgraded glib2 (2.76.0-2 -> 2.76.1-1)
[2023-03-25T13:32:21+0530] [ALPM] upgraded libgirepository (1.76.0-1 -> 1.76.1-1)
[2023-03-25T13:32:21+0530] [ALPM] upgraded gobject-introspection-runtime (1.76.0-1 -> 1.76.1-1)
[2023-03-25T13:32:21+0530] [ALPM] upgraded python-markdown (3.4.2-1 -> 3.4.3-1)
[2023-03-25T13:32:21+0530] [ALPM] upgraded gobject-introspection (1.76.0-1 -> 1.76.1-1)
[2023-03-25T13:32:21+0530] [ALPM] upgraded libusb (1.0.26-1 -> 1.0.26-2)
[2023-03-25T13:32:21+0530] [ALPM] upgraded mkinitcpio (35.1-1 -> 35.2-1)
[2023-03-25T13:32:22+0530] [ALPM] upgraded linux (6.2.7.arch1-1 -> 6.2.8.arch1-1)
[2023-03-25T13:32:24+0530] [ALPM] upgraded linux-headers (6.2.7.arch1-1 -> 6.2.8.arch1-1)
[2023-03-25T13:32:25+0530] [ALPM] upgraded linux-zen (6.2.7.zen1-1 -> 6.2.8.zen1-1)
[2023-03-25T13:32:26+0530] [ALPM] upgraded linux-zen-headers (6.2.7.zen1-1 -> 6.2.8.zen1-1)
[2023-03-25T13:32:27+0530] [ALPM] upgraded nvidia-utils (525.89.02-2 -> 530.41.03-1)
[2023-03-25T13:32:28+0530] [ALPM] upgraded nvidia-dkms (525.89.02-2 -> 530.41.03-1)
[2023-03-25T13:32:28+0530] [ALPM] upgraded python-gobject (3.42.2-1 -> 3.44.1-1)
[2023-03-25T13:32:28+0530] [ALPM] upgraded python-pydantic (1.10.6-2 -> 1.10.7-1)
[2023-03-25T13:32:28+0530] [ALPM] upgraded sqlite (3.41.1-1 -> 3.41.2-1)
[2023-03-25T13:32:28+0530] [ALPM] upgraded xorg-xwayland (22.1.8-1 -> 23.1.0-1)
[2023-03-25T13:50:39+0530] [ALPM] upgraded waydroid-image-gapps (18.1_20230304-1 -> 18.1_20230318-1)

Rebooted and then hyprland wasn't starting.
Tried non-wrapped hyprland. Logged in  sucessfully.
After debugging, found that
export GBM_BACKEND=nvidia-drm
was causing problem.
Relogged-in by commenting above line in the wrapper. Logged in sucessfully.

~/.local/bin/wrappedhl

#!/bin/sh

cd ~ || exit

# Log WLR errors and logs to the hyprland log. Recommended
export HYPRLAND_LOG_WLR=1

# Tell XWayland to use a cursor theme
export XCURSOR_THEME=material-light-cursors

# Set a cursor size
export XCURSOR_SIZE=24

# Example IME Support: fcitx
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export SDL_IM_MODULE=fcitx
export GLFW_IM_MODULE=ibus

# Nvidia
export LIBVA_DRIVER_NAME=nvidia
export XDG_SESSION_TYPE=wayland
# export GBM_BACKEND=nvidia-drm
export __GLX_VENDOR_LIBRARY_NAME=nvidia
export WLR_NO_HARDWARE_CURSORS=1

exec Hyprland

Questions

What is GBM_BACKEND used for? (Tried googling it but, I wasn't able understand everything.)
Do I need it? If yes, then why?

 Can't provide much help as the entire nvidia section is written by volunteers.

While I can still start hyprland with GBM_BACKEND=nvidia-drm (nvidia-dkms 530.41.03-1, GTX 1650 mobile), I noticed some games (both dxvk/vulkan and native opengl) get intense noisy artifacts, it starts behaving normally if I set no_direct_scanout=1, probably caused by the broken GDM backend.

You can use GBM_BACKEND=nvidia instead, it works on my computer

I have the same issue with xorg-xwayland-23.1.0-1, downgrading it to 22.1.8-1 fixed the issue

Latest nvidia driver update seemed to break running hyprland for a friend of mine.
Downgrading nvidia-dkms and nvidia-utils fixed it.
Torvalds is right about nvidia....

You can use GBM_BACKEND=nvidia instead, it works on my computer

Don't do that! If you switch GBM_BACKEND=nvidia-drm with random letters (GBM_BACKEND=asdasda) you will still get the same result! (Booting, but not using Nvidia)

I have the same issue with xorg-xwayland-23.1.0-1, downgrading it to 22.1.8-1 fixed the issue

Doesn't fix it for me...

Latest nvidia driver update seemed to break running hyprland for a friend of mine.(same error) Downgrading nvidia-dkms and nvidia-utils fixed it.
Torvalds is right about nvidia....

Also behaves weirdly on my system... This solution works, but using nvtop shows that it DOESNT EVEN RECOGNIZE MY GRAPHICS CARD ANYMORE!!!
I'm actually ripping out my hair as it seems like a package caused this issue, as a clean-install worked with the previous settings...
Will report my findings if any package removal solves it...

Much work but to no avail...
I have looked through multiple article by now and couldn't fix it (neither downgrading Hyprland, nor removing any packages worked).
Keep in mind I have only tried packages that SHOULD have a any kind of relation with GPU work...
Even still I found some good resources!
It seems like the Nvidia patch is based on wlroots (would love to have the git repo grrr) and whenever my Hyprland launch crashed it would report something about this file (line 847): Wlroots' Gles2 Renderer code
Sometimes (though randomly/happened only once) I also got a crash from this file, while forcing Hyprland to run using sudo (--i-am-really-stupid flag) Wlroots' Wayland Backend code
These are the logs when launching with downgraded nvidia drivers (remember these make the card not show up anymore) and it seems like there were already issues/errors with the patch before?
That were just being ignored?
There are numerous errors in this...
The launch logs

Welcome to Hyprland!
Instance Signature: b08b72358ad549fd066e5be0fc3aa4c9df367607_1690315752
Hyprland PID: 22975
===== SYSTEM INFO: =====
System name: Linux
Node name: AcerNitro5
Release: 6.1.39-1-lts
Version: #1 SMP PREEMPT_DYNAMIC Wed, 19 Jul 2023 17:58:31 +0000
GPU information:
00:02.0 VGA compatible controller [0300]: Intel Corporation CometLake-H GT2 [UHD Graphics] [8086:9bc4] (rev 05) (prog-if 00 [VGA controller])
01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA106M [GeForce RTX 3060 Mobile / Max-Q] [10de:2520] (rev a1) (prog-if 00 [VGA controller])
Warning: you're using an NVIDIA GPU. Make sure you follow the instructions on the wiki if anything is amiss.
os-release:
NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://bugs.archlinux.org/"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo
========================
If you are crashing, or encounter any bugs, please consult https://wiki.hyprland.org/Crashes-and-Bugs/
Current splash: Here we go back, this is the moment, tonight is the night
Creating the HookSystem!
Creating the KeybindManager!
Creating the AnimationManager!
Created a bezier curve, baked 255 points, mem usage: 4.08kB, time to bake: 26.30µs. Estimated average calc time: 0.00µs.
Creating the ConfigManager!
Creating the CHyprError!
[hookSystem] New hook event registered: focusedMon
[hookSystem] New hook event registered: preRender
Creating the LayoutManager!
Reloading the config!
Created a bezier curve, baked 255 points, mem usage: 4.08kB, time to bake: 12.93µs. Estimated average calc time: 0.00µs.
Using config: /home/TangerineDev/.config/hypr/hyprland.conf
Created a bezier curve, baked 255 points, mem usage: 4.08kB, time to bake: 12.62µs. Estimated average calc time: 0.00µs.
Created a bezier curve, baked 255 points, mem usage: 4.08kB, time to bake: 12.45µs. Estimated average calc time: 0.00µs.
Created a bezier curve, baked 255 points, mem usage: 4.08kB, time to bake: 12.46µs. Estimated average calc time: 0.00µs.
Created a bezier curve, baked 255 points, mem usage: 4.08kB, time to bake: 12.44µs. Estimated average calc time: 0.00µs.
Registered dynamic var "$mainMod" -> SUPER
Registered dynamic var "$mainModShift" -> SUPERSHIFT
00:00:00.000 [backend/wayland/backend.c:572] Creating wayland backend
00:00:00.004 [render/egl.c:206] Supported EGL client extensions: EGL_EXT_platform_base EGL_EXT_device_base EGL_EXT_device_enumeration EGL_EXT_device_query EGL_KHR_client_get_all_proc_addresses EGL_EXT_client_extensions EGL_KHR_debug EGL_KHR_platform_x11 EGL_EXT_platform_x11 EGL_EXT_platform_device EGL_KHR_platform_wayland EGL_EXT_platform_wayland EGL_EXT_explicit_device EGL_EXT_platform_xcb EGL_MESA_platform_gbm EGL_KHR_platform_gbm EGL_MESA_platform_surfaceless
00:00:00.004 [EGL] command: eglQueryDevicesEXT, error: EGL_BAD_ALLOC (0x3003), message: "EGL_BAD_ALLOC error: In eglQueryDevicesEXT: Failed to allocate device list.
"
00:00:00.004 [EGL] command: eglQueryDevicesEXT, error: EGL_BAD_ALLOC (0x3003), message: "EGL_BAD_ALLOC error: In eglQueryDevicesEXT: Failed to allocate device list.
"
00:00:00.029 [render/egl.c:355] Using EGL 1.5
00:00:00.029 [render/egl.c:356] Supported EGL display extensions: EGL_ANDROID_blob_cache EGL_ANDROID_native_fence_sync EGL_EXT_create_context_robustness EGL_EXT_image_dma_buf_import EGL_EXT_image_dma_buf_import_modifiers EGL_IMG_context_priority EGL_KHR_cl_event2 EGL_KHR_config_attribs EGL_KHR_context_flush_control EGL_KHR_create_context EGL_KHR_create_context_no_error EGL_KHR_fence_sync EGL_KHR_get_all_proc_addresses EGL_KHR_gl_colorspace EGL_KHR_gl_renderbuffer_image EGL_KHR_gl_texture_2D_image EGL_KHR_gl_texture_3D_image EGL_KHR_gl_texture_cubemap_image EGL_KHR_image_base EGL_KHR_no_config_context EGL_KHR_reusable_sync EGL_KHR_surfaceless_context EGL_EXT_pixel_format_float EGL_KHR_wait_sync EGL_MESA_configless_context EGL_MESA_drm_image EGL_MESA_image_dma_buf_export EGL_MESA_query_driver EGL_WL_bind_wayland_display
00:00:00.029 [render/egl.c:358] Supported EGL device extensions: EGL_EXT_device_drm EGL_EXT_device_drm_render_node
00:00:00.029 [render/egl.c:360] EGL vendor: Mesa Project
00:00:00.031 [render/gles2/renderer.c:843] Creating GLES2 renderer
00:00:00.031 [render/gles2/renderer.c:844] Using OpenGL ES 3.2 Mesa 23.1.4
00:00:00.031 [render/gles2/renderer.c:845] GL vendor: Intel
00:00:00.031 [render/gles2/renderer.c:846] GL renderer: Mesa Intel(R) UHD Graphics (CML GT2)
00:00:00.031 [render/gles2/renderer.c:847] Supported GLES2 extensions: GL_EXT_blend_minmax GL_EXT_multi_draw_arrays GL_EXT_texture_filter_anisotropic GL_EXT_texture_compression_s3tc GL_EXT_texture_compression_dxt1 GL_EXT_texture_compression_rgtc GL_EXT_texture_format_BGRA8888 GL_OES_compressed_ETC1_RGB8_texture GL_OES_depth24 GL_OES_element_index_uint GL_OES_fbo_render_mipmap GL_OES_mapbuffer GL_OES_rgb8_rgba8 GL_OES_standard_derivatives GL_OES_stencil8 GL_OES_texture_3D GL_OES_texture_float GL_OES_texture_float_linear GL_OES_texture_half_float GL_OES_texture_half_float_linear GL_OES_texture_npot GL_OES_vertex_half_float GL_EXT_draw_instanced GL_EXT_texture_sRGB_decode GL_OES_EGL_image GL_OES_depth_texture GL_AMD_performance_monitor GL_OES_packed_depth_stencil GL_EXT_texture_type_2_10_10_10_REV GL_NV_conditional_render GL_OES_get_program_binary GL_APPLE_texture_max_level GL_EXT_discard_framebuffer GL_EXT_read_format_bgra GL_NV_pack_subimage GL_EXT_frag_depth GL_NV_fbo_color_attachments GL_OES_EGL_image_external GL_OES_EGL_sync GL_OES_vertex_array_object GL_OES_viewport_array GL_ANGLE_pack_reverse_row_order GL_ANGLE_texture_compression_dxt3 GL_ANGLE_texture_compression_dxt5 GL_EXT_occlusion_query_boolean GL_EXT_robustness GL_EXT_texture_rg GL_EXT_unpack_subimage GL_NV_draw_buffers GL_NV_read_buffer GL_NV_read_depth GL_NV_read_depth_stencil GL_NV_read_stencil GL_EXT_draw_buffers GL_EXT_instanced_arrays GL_EXT_map_buffer_range GL_KHR_debug GL_KHR_robustness GL_KHR_texture_compression_astc_ldr GL_NV_generate_mipmap_sRGB GL_NV_pixel_buffer_object GL_OES_depth_texture_cube_map GL_OES_required_internalformat GL_OES_surfaceless_context GL_EXT_color_buffer_float GL_EXT_debug_label GL_EXT_sRGB_write_control GL_EXT_separate_shader_objects GL_EXT_shader_framebuffer_fetch GL_EXT_shader_group_vote GL_EXT_shader_implicit_conversions GL_EXT_shader_integer_mix GL_EXT_tessellation_point_size GL_EXT_tessellation_shader GL_INTEL_conservative_rasterization GL_INTEL_performance_query GL_ANDROID_extension_pack_es31a GL_EXT_base_instance GL_EXT_compressed_ETC1_RGB8_sub_texture GL_EXT_copy_image GL_EXT_draw_buffers_indexed GL_EXT_draw_elements_base_vertex GL_EXT_gpu_shader5 GL_EXT_polygon_offset_clamp GL_EXT_primitive_bounding_box GL_EXT_render_snorm GL_EXT_shader_io_blocks GL_EXT_texture_border_clamp GL_EXT_texture_buffer GL_EXT_texture_cube_map_array GL_EXT_texture_norm16 GL_EXT_texture_view GL_KHR_blend_equation_advanced GL_KHR_blend_equation_advanced_coherent GL_KHR_context_flush_control GL_KHR_robust_buffer_access_behavior GL_NV_image_formats GL_NV_shader_noperspective_interpolation GL_OES_copy_image GL_OES_draw_buffers_indexed GL_OES_draw_elements_base_vertex GL_OES_gpu_shader5 GL_OES_primitive_bounding_box GL_OES_sample_shading GL_OES_sample_variables GL_OES_shader_io_blocks GL_OES_shader_multisample_interpolation GL_OES_tessellation_point_size GL_OES_tessellation_shader GL_OES_texture_border_clamp GL_OES_texture_buffer GL_OES_texture_cube_map_array GL_OES_texture_stencil8 GL_OES_texture_storage_multisample_2d_array GL_OES_texture_view GL_EXT_blend_func_extended GL_EXT_buffer_storage GL_EXT_float_blend GL_EXT_geometry_point_size GL_EXT_geometry_shader GL_EXT_shader_samples_identical GL_EXT_texture_sRGB_R8 GL_KHR_no_error GL_KHR_texture_compression_astc_sliced_3d GL_NV_fragment_shader_interlock GL_OES_EGL_image_external_essl3 GL_OES_geometry_point_size GL_OES_geometry_shader GL_OES_shader_image_atomic GL_EXT_clear_texture GL_EXT_clip_cull_distance GL_EXT_disjoint_timer_query GL_EXT_texture_compression_s3tc_srgb GL_MESA_shader_integer_functions GL_EXT_clip_control GL_EXT_color_buffer_half_float GL_EXT_memory_object GL_EXT_memory_object_fd GL_EXT_semaphore GL_EXT_semaphore_fd GL_EXT_texture_compression_bptc GL_EXT_texture_mirror_clamp_to_edge GL_KHR_parallel_shader_compile GL_NV_alpha_to_coverage_dither_control GL_EXT_EGL_image_storage GL_EXT_shader_framebuffer_fetch_non_coherent GL_EXT_texture_shadow_lod GL_INTEL_blackhole_render GL_MESA_framebuffer_flip_y GL_NV_compute_shader_derivatives GL_EXT_demote_to_helper_invocation GL_EXT_depth_clamp GL_EXT_texture_query_lod GL_MESA_bgra
MESA-LOADER: failed to open nvidia-drm: /usr/lib/gbm/nvidia-drm_gbm.so: cannot open shared object file: No such file or directory (search paths /usr/lib/gbm, suffix _gbm)
00:00:00.049 [types/wlr_drm_lease_v1.c:715] No DRM backend supplied, failed to create wlr_drm_lease_v1_manager
00:00:00.049 [backend/headless/backend.c:67] Creating headless backend
00:00:00.049 [xwayland/sockets.c:63] Failed to bind socket @/tmp/.X11-unix/X0: Address already in use
00:00:00.070 [wayland] unable to lock lockfile /run/user/1000/wayland-1.lock, maybe another compositor is running
00:00:00.070 [backend/wayland/backend.c:432] Starting Wayland backend
00:00:00.074 [util/env.c:9] Loading WLR_NO_HARDWARE_CURSORS option: 1
00:00:00.111 [backend/headless/backend.c:17] Starting headless backend
/bin/sh: line 1: discord: command not found
/bin/sh: line 1: discord: command not found
/bin/sh: line 1: swaync: command not found
/bin/sh: line 1: /usr/lib/polkit-kde-authentication-agent-1: No such file or directory
MESA-LOADER: failed to open nvidia-drm: /usr/lib/gbm/nvidia-drm_gbm.so: cannot open shared object file: No such file or directory (search paths /usr/lib/gbm, suffix _gbm)
ok
00:00:00.440 [xwayland/server.c:108] Starting Xwayland on :2
libEGL warning: egl: failed to create dri2 screen
libEGL warning: egl: failed to create dri2 screen
MESA-LOADER: failed to open nvidia-drm: /usr/lib/gbm/nvidia-drm_gbm.so: cannot open shared object file: No such file or directory (search paths /usr/lib/gbm, suffix _gbm)
MESA-LOADER: failed to open nvidia-drm: /usr/lib/gbm/nvidia-drm_gbm.so: cannot open shared object file: No such file or directory (search paths /usr/lib/gbm, suffix _gbm)
The XKEYBOARD keymap compiler (xkbcomp) reports:

Warning:          Unsupported maximum keycode 708, clipping.
X11 cannot support keycodes above 255.
Errors from xkbcomp are not fatal to the X server
DBus name already taken. Ulauncher is probably backgrounded. Did you mean ulauncher-toggle?
MESA-LOADER: failed to open nvidia-drm: /usr/lib/gbm/nvidia-drm_gbm.so: cannot open shared object file: No such file or directory (search paths /usr/lib/gbm, suffix _gbm)
00:00:10.798 [xwayland/server.c:215] Restarting Xwayland (lazy)

It also seems as if the Intel Drivers are taking over?
Also the arch wiki seems to say that you can see which backend is being used for Nvidia (GBM or EGLStreams) using this command journalctl -b 0 --grep "renderer for" but I get no entries?
That's it for what I found today...
I do have an another NVME Drive on which I'll REINSTALL THE WHOLE THING AGAIN (ffs) and see if we can find the actual buggy package by rebooting after every package install... (I hate myself, yes)
To quicken the process I'll do archinstall and a Hyprland Installer Script that I found that seems to do exactly everything I needed from Hyprland anyway (with proper Nvidia installation) so if THAT works I'll copy what that script did and see what exactly is happening.
For now I'll go and sleep 😴
See you tommorow!
If anybody got any kind of clues, then lets Kamehameha this sh*t together.
Oh and btw the Hyprland Discord (specifically the #hyprland-nvidia channel seems to be the place to report bugs?)
AUR package maintainer's words: Hi all! Just want to clarify some things.
a) I am not a technical support person. (UPDATE: There might actually be an issue, but I need to test it on my personal machine.) If you want help with your individual issues, please join the hyprland discord and send in a message to either #hyprland-help or #hyprland-nvidia (not linking it here because I'm unsure of the AUR linking policy).
I'll try to see if I can do something there with the devs...

PS: Forgot to mention that from the TTY I get errors about a seatd.sock and creating the file doesn’t solve it.
Note to self: comes from the libseat/libseat.c:76 file

Conclusion
I’ll be blunt… sadly there doesn’t seem to be an actual solution… A fresh install with GBM_BACKEND=nvidia-drm still apparently crashes!
Why? After the Nvidia 495 driver update they switched prematurely over to the GBM Backend (which our environment variable is supposed to force) but it seems like it was to early for them…
Egl-Streams‘ backend was also nuked in the latest wl-roots commits!
Meaning Nvidia support is seriously limited/lacking!
There might be a way, but as it seems, this is pretty much impossible without actually fixing the bugs in the wl-roots git repo!
Solution?
I pretty much just recommend commenting out the variable to use the integrated graphics as there is no other solution…
Other apps can still be run using the Nvidia GPU with PRIME, etc.
I also found out that this is actually more battery-efficient for laptops, where I expected the opposite!
If anyone considers ever trying further than what I did (don’t try downgrades, I already did) here are some links:
https://github.com/hyprwm/hyprland-wiki/blob/main/pages/Configuring/Multi-GPU.md
https://download.nvidia.com/XFree86/Linux-x86_64/525.53/README/gbm.html
https://bbs.archlinux.org/viewtopic.php?id=282714
https://github.com/NVIDIA/egl-gbm

PS: Forgot to mention that from the TTY I get errors about a seatd.sock and creating the file doesn’t solve it. Note to self: comes from the libseat/libseat.c:76 file

This has a simple fix: add LIBSEAT_BACKEND=logins to the /etc/environment file and reboot!

I actually have a question on all of you, that could be the reason for this bug…
Do we all have Hybrid Graphics?
Like a laptop? Can someone test it on their Desktop if possible?

I actually have a question on all of you, that could be the reason for this bug… Do we all have Hybrid Graphics? Like a laptop? Can someone test it on their Desktop if possible?

Same issue on the desktop. I have a 1080ti and the IGPU enabled

Interestingly I started getting this issue now while it wasn't the case when OP and others reported this issue. Laptop gpu but no igpu, disabled by manufacturer.

GBM_BACKEND=nvidia_drm

There is still no fix for this issue, right?

I have one, go amd :trollface:

:/ very sad. Hyprland seemed like so much fun. Really makes me think if I should buy nvidia again. It just makes everything so hard. Guess nobody has found a workaround to make this work so far?

Well as far as I think what’s happening (don’t trust me on this)
This only happens with systems that have multiple GPUs…
Hyprland starts up searching for your dedicated graphics card and finds your integrated one first resulting in its usage instead of the dedicated one…
It chooses that one thinking it’s Nvidia while it’s Intel‘s Graphics and calls the wrong commands causing a crash!
(That’s what I think is happening anyways…)
So hopefully (Nobody has tested this afaik on here) if you have a MUX Switch (on a laptop) or a system with no integrated graphics (AMD+Nvidia not Intel+Nvidia) then it could work…

Thanks for the clarification. Sounds reasonable. I am on a Laptop with integrated graphics as well as dedicated gpu.
Just out of interest what is you expectation for how that story will continue will continue with Hyprland and Nvidia?
What I did not completely understand. Is this a Hyprland issue because I thing at least the one setting GBM_BACKEND to nvidia also breaks my KDE Plasma environment that is on X11. (at least I think it is the same cause because changing it back resolves the issue again).
I feel with having a hybrid system at least with an nvidia gpu it is still a pretty bad idea to go with wayland. Is that fair to say?

Going to be honest with you... I don't know...
I've heard support for NVIDIA drivers is currently better on Wayland than X11, but why I can't really tell, if you're going with proprietary drivers...
AFAIK the biggest turnoff for Wayland is still the support of the applications (it has gotten considerably better, but still exists).
In a couple months, I might try to switch from Arch to something else, in hopes of finding out how to fix these issues... (Gnome+NVIDIA+Wayland supposedly works fine)
If someone already is on Gnome+Wayland (I don't know how good a VM is for this), can you print your env variables?
It would interest me what the value for GBM_BACKEND is.

I might be onto smth guys... But I need someone to test this with a MUX Switch or smth similiar (I don't have one, lol Optimus laptop)
I recently learned that the env = ... syntax does something different if a , or an = is used (e.g. env = GBM_BACKEND,nvidia-drm  or env = GBM_BACKEND=nvidia-drm ) @vaxerski Can you confirm this? (If that's correct, can we document that?)
As far as I can see an = preserves the environment variable, while a , uses it only for Hyprland launch (it gets cleared after launch).
**So in a last ditch effort I changed this line from env = GBM_BACKEND,nvidia-drm  (with comma) to env = GBM_BACKEND=nvidia-drm  and it magically launches Hyprland!
My NVIDIA card shows up on Nvtop, but my Intel card is being used. I suspect that this might just be, because of my bad Optimus experience...**
Please someone try this!

As far as I can tell it makes no difference whether you have the variable set with env = GBM_BACKEND=nvidia-drm or not at all, so I suspect it's just invalid syntax. Either way I see the card in nvtop and am able to launch other apps with prime-run (see https://wiki.archlinux.org/title/PRIME#PRIME_render_offload) to use the dedicated card. Hyprland is clearly still using the Intel card.

What did work for me in NixOS after you mentioned the hypothesis with the instructions being sent to the intel card. I turned off offloading altogether. Unfortunately I do not know how to set it in non NixOS distros but here its basically this. Going from
# ...
  hardware.nvidia.prime = {
    enable = true;
    enableOffloadCmd = true;
  };

to
# ...
  hardware.nvidia.prime = {
    sync.enable = true;
  };

Obviously that comes with all the downsides of turning off the ingetrated gpu but at least Hyprland is working with the dedicated GPU.

As far as I can tell it makes no difference whether you have the variable set with env = GBM_BACKEND=nvidia-drm or not at all, so I suspect it's just invalid syntax. Either way I see the card in nvtop and am able to launch other apps with prime-run (see https://wiki.archlinux.org/title/PRIME#PRIME_render_offload) to use the dedicated card. Hyprland is clearly still using the Intel card.

Yes I am too able to see Nvidia GPU in nvtop.
I can also disable Nvidia GPU completely using supergfxctl.
And now I'm also able to use prime-run for blender (Thanks for that @lkm, I thought wayland doesn't support nvidia-prime).
before removing GBM_BACKEND=nvidia-drm, blender used to work smooth, now using prime-run it again works smooth
normal
blender

prime-run
prime-run blender

I used to have this issue on 535 drivers, but the new driver version 545.29.02 has fixed it for me and Hyprland now starts with GBM_BACKEND=nvidia-drm.

@LazarusCat59 Can you try with a comma instead of an equal sign? (How it is in the official Hyprland documentation)
I also got it working with an equal (NVIDIA 535 Drivers) so I don’t really know honestly if this solution actually works…

@LazarusCat59 Can you try with a comma instead of an equal sign? (How it is in the official Hyprland documentation)
I also got it working with an equal (NVIDIA 535 Drivers) so I don’t really know honestly if this solution actually works…

Sorry, I just meant the variable's value is nvidia-drm, not anything about the syntax I used. I did use the syntax env = GBM_BACKEND,nvidia-drm. The variable is being initialized correctly and doing echo $GBM_BACKEND does give me nvidia-drm as output, so I'm pretty sure it does work. Sorry again for my lack of proper wording!

@LazarusCat59 Can you try with a comma instead of an equal sign? (How it is in the official Hyprland documentation)

I also got it working with an equal (NVIDIA 535 Drivers) so I don’t really know honestly if this solution actually works…

Sorry, I just meant the variable's value is nvidia-drm, not anything about the syntax I used. I did use the syntax env = GBM_BACKEND,nvidia-drm. The variable is being initialized correctly and doing echo $GBM_BACKEND does give me nvidia-drm as output, so I'm pretty sure it does work. Sorry again for my lack of proper wording!

Ok so testing myself I got it to work, but we have the problem again, that nvtop only shows my integrated graphics card and not my dedicated graphics card...
I want to say, Hyprland feels more responsive though, but I feel like I'm experiencing the Placebo effect...
I'll test further!

Abort! I said abort!!!
Upon further testing, it seems like the whole 545 Drivers just make it my graphics card stop working!!!
Either with or without the environment variable, my GPU doesn't show up!!!
I repeat don't install this, downgrade!
Prime (prime-run) also stopped working and it seems like running games without prime will just run them on the iGPU... (With 545 Drivers I got 240 fps on a 2D game, with the 535 Drivers using prime-run more than 480 fps....)
I downgraded... Something is wrong with those drivers for me...

Abort! I said abort!!!
Upon further testing, it seems like the whole 545 Drivers just make it my graphics card stop working!!!
Either with or without the environment variable, my GPU doesn't show up!!!
I repeat don't install this, downgrade!
Prime (prime-run) also stopped working and it seems like running games without prime will just run them on the iGPU... (With 545 Drivers I got 240 fps on a 2D game, with the 535 Drivers using prime-run more than 480 fps....)
I downgraded... Something is wrong with those drivers for me...

I repeat don't install this, downgrade! Prime (prime-run) also stopped working and it seems like running games without prime will just run them on the iGPU... (With 545 Drivers I got 240 fps on a 2D game, with the 535 Drivers using prime-run more than 480 fps....)

Ah I myself am not really having those issues, I do have the GPU show up perfectly fine and I can play games pretty fine (excluding issues I already had on older drivers). So I guess it might just be different experience for different people.

I've updated to 545 and env = GBM_BACKEND,nvidia-drm now works. But I see no changes with or without it.

I've updated to 545 and env = GBM_BACKEND,nvidia-drm now works. But I see no changes with or without it.

Try launching a GPU application without passing in prime-run... Does it automatically utilize the GPU? (Blender, A Game, FireFox with WebGPU, etc.)

I've updated to 545 and env = GBM_BACKEND,nvidia-drm now works. But I see no changes with or without it.

Try launching a GPU application without passing in prime-run... Does it automatically utilize the GPU? (Blender, A game, Firefox with WebGPU, etc.)

I don't use prime-run to lunch apps. They all run on the Intel GPU. The external display is wired to the Nvidia GPU in this laptop.

Still an issue on latest drivers. glx works but es2_info still shows mesa


fill_task_input don't consider the incomplete data ,  is it implied that the module must consider the incomplete data and carry out local caching and splicing processing when handling (TASK)?

If a certain module (MODULE) requires multiple input streams (such as OVERLAY) to function normally, and only some of these input streams have data, is it implied that the module must consider the incomplete data and carry out local caching and splicing processing when handling (TASK)? Otherwise, there will be incomplete input data, leading to processing failure.
bool ImmediateInputStreamManager::fill_task_input(Task &task) {
bool task_filled = false;
for (auto & input_stream : input_streams_) {
        if (input_stream.second->is_empty()) {
            continue;
        }
        //one task cantain mult pkts, NEED add max pkts ctl?
        while (not input_stream.second->is_empty()) {
            Packet pkt = input_stream.second->pop_next_packet(false);
            if (pkt.timestamp() == BMF_EOF) {
                if (input_stream.second->probed_) {
                    BMFLOG(BMF_INFO) << "immediate sync got EOF from dynamical update";
                    pkt.set_timestamp(DYN_EOS);
                    input_stream.second->probed_ = false;
                } else
                    stream_done_[input_stream.first] = 1;
            }
            //READ：取到task的对应输入队列中
            task.fill_input_packet(input_stream.second->get_id(), pkt);
            task_filled = true;
        }
    }

If a certain module (MODULE) requires multiple input streams (such as OVERLAY) to function normally, and only some of these input streams have data, is it implied that the module must consider the incomplete data and carry out local caching and splicing processing when handling (TASK)?
Yes.
By default, the answer is yes. The default input mode for the BMF module is "immediate," which corresponds to the ImmediateInputStreamManager you mentioned. In the case of multiple inputs, there is no guarantee that each input will have packet data on every process call.
There is another inputmanager type called FramesyncInputStreamManager, which ensures that each input has packets. It performs framesync operations based on timestamps.


rados: thrash-eio-restructure downstream/singleton

Signed-off-by: Rachanaben Patel<EMAIL_ADDRESS>

racpatel-2020-05-19_14:07:26-rados:downstream:singleton-nautilus-distro-basic-argo


Vanilla react-native build fails when using Auth0's react-native-lock

The Auth0 team says this is a React Native issue:
https://github.com/auth0/react-native-lock/issues/60

It seems to be an integration issue to me and it's seem resolved.
I'll close it, if you still have this issue, please let me know and provide more information.

@facebook-github-bot close

@charpeni tells me to close this issue. If you think it should still be opened let us know why.


Error 400 bad request

Hello I am receiveing this error, i do not understand what is wrong
HTTP Error 400: Bad Request
Your bot id is probably configured incorrectly
Traceback (most recent call last):
File "/home/markdhn/poloniexlendingbot/lendingbot.py", line 80, in
PluginsManager.after_lending()
File "/home/markdhn/poloniexlendingbot/modules/PluginsManager.py", line 41, in after_lending
plugin.after_lending()
File "/home/markdhn/poloniexlendingbot/plugins/AccountStats.py", line 43, in after_lending
self.notify_stats()
File "/home/markdhn/poloniexlendingbot/plugins/AccountStats.py", line 137, in notify_stats
self.log.notify(output, self.notify_config)
File "/home/markdhn/poloniexlendingbot/modules/Logger.py", line 151, in notify
send_notification(msg, notify_conf)
File "/home/markdhn/poloniexlendingbot/modules/Notify.py", line 98, in send_notification
post_to_telegram(msg, nc['telegram_chat_ids'], nc['telegram_bot_id'])
File "/home/markdhn/poloniexlendingbot/modules/Notify.py", line 50, in post_to_telegram
raise NotificationException("{0}\n{1}".format(e, msg))
NotificationException: HTTP Error 400: Bad Request
Your bot id is probably configured incorrectly

Your bot id is probably configured incorrectly

Nothing to see here...
Glad you found a solution.


fixes for usage and seal

What this PR does / why we need it:

remove index after seal
Remove writable index for overlaybd writable layer after a successful seal to save storage space.
fix usage calculation for overlaybd snapshot
Some space occupancy of overlaybd is not being counted, for example:

the lazy downloaded blobs that are not counted for the committed snapshots
writable layer space usages are not counted for active snapshots

Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Please check the following list:

[ ]  Does the affected code have corresponding tests, e.g. unit test, E2E test?
[ ]  Does this change require a documentation update?
[ ]  Does this introduce breaking changes that would require an announcement or bumping the major version?
[x]  Do all new files have an appropriate license header?

@WaberZhuang  please check whether the usage fix is also worked for turbo-oci


Log Rotation

Make bus the default app log mode
Split bus strings using tail's /[\r]{0,1}\n/ regex
make output and error default to /dev/null when using bus mode
log warning if not using recommended app log settings
refactor LogRelays to better isolate the bus and file logic

resolves #2

Made the change to BC views as well: https://github.com/bluecadet/Cinder-BluecadetViews/commit/1dbb129bbe659fcc075711cf9577478770ab03c4

Good catch with the tail logic and thanks for testing more tomorrow!

Alright, just did some more thorough testing with 2 prod unity apps, a prod cinder app, and 2 prod web apps. Everything is looking good!
One more thing; while working on the fixes for this issue, I messed around a bit with TDD/unit-testing in node. I've cleaned up those tests and pushed them to another branch (feature/log-rotate-tests). Might be worth merging in too?

Amazing, I had a similar setup and tested a few random native apps as well and all has seemed fine so far. Let's merge this in. Can't believe this is closing issue #2 🤯 thanks for all of your work on this one 🙌
And yes! Unit tests is something I've been hoping for too. Did a little bit of testing to include jsdoc generation/validation into PRs via GH workflows. Ran into a few issues with changesets, monorepo and package-lock, but absolutely worth exploring further (the issue was that you'd have to manually upgrade dependencies in the package-lock file or delete/re-generate it before npm publish worked iirc). The lock file was just needed for GH's npm cache fwiw.


aleph.im integration grant proposal - 1

Grant Application
This application is (select one):

[X] Speculative (use this by default)
[ ] an RFP response

This application is (select one):

[X] Public (fully)
[ ] Public with private finances

Abstract
Aleph.im is a decentralized cloud infrastructure that works with various blockchains, and accepts multiple chains wallets and addresses schemes.
The goal of this project is to integrate the aleph.im network with the Polkadot ecosystem. So far, the aleph.im network is integrated with Ethereum, Binance Chain, NEO and NULS. It includes Step 1 and 2 of the feasibility study (more details in document).
Checklist

[X] The grants document has been read and understood.
[X] The Google Form will be completed accurately. Note that the Google Form requires the pull request URL.
[X] Abstract (above) is succinct and complete.
[X] The application is being included into the correct directory: either 'targeted' or 'speculative'.
[x] The application includes a project description.
[X] The application includes all names of team members.
[X] The application includes a description of the team's experience.
[X] The application includes all necessary links (e.g. GitHub and LinkedIn)
[X] The "Development Roadmap" section in the application has a timeline of development ("milestones").
[X] The "Development Roadmap" section in the application has an estimate of funds required.
[X] The "Development Roadmap" section gives an indication of the team's long term plans.
[x] The "Development Roadmap" section includes documentation as a deliverable for at least one milestone.

Updated future plans with a bit more information


Should Fusion introduce a Roact-like form of the New function?

It was suggested in a recent PR that we could consider adding a more Roact-like form of the New function, accepting all arguments in one call rather than as a curried function. While I rejected the PR on the grounds that changes should be discussed before they're added, I'm opening an issue to discuss it here :)
Hypothetical usage:
-- option 1 for children - just like we do now:
local ui = New("Frame", {
    Name = "Foo",
    Visible = true,

    [Children] = New("UICorner", {...})
})

-- option 2 for children - separate it like Roact
local ui = New("Frame", {
    Name = "Foo",
    Visible = true
}, {
    New("UICorner", {...})
})

For my personal take on this - I'm personally more of the opinion that we shouldn't introduce multiple ways of doing the same thing like this. It tends to promote inconsistency across codebases, and is something that can be achieved by a ~3 line utility function implemented in user space anyway.
As for which form I'd choose if we did implement this, I'd prefer the [Children] form as opposed to the more Roact-like form, since it reads more explicitly.

I'm conflicted. On one hand, as you say it promotes inconsistency between codebases. On the other hand, there's not much harm in adding this, and it would, for example, greatly simplify the Roblox-ts fusion jsx differences. Currently we have to use a shim of createElement.
If we do go this route, I think both children options should be allowed. If 3 arguments, the last one is the children table. If 2, the props symbol is used.

If we do go this route, I think both children options should be allowed. If 3 arguments, the last one is the children table. If 2, the props symbol is used.

I'm not really convinced. I think the [Children] way is more readable and is consistent with the way other special functions of New are invoked, e.g. [OnChange], [Ref], [Cleanup]

With this being said, I do acknowledge there are tangible problems with the curried form of New as it stands, for example with automatic formatters, so I'd be willing to trial-run a non-curried New function for at least one beta version to gather feedback.

I vote Option 1. Much nicer on the eyes. If we wanted to be just like Roact then why not use Roact?

I've been letting this stew in my mind for a while now, and I'm not convinced this is a change worth making anymore, especially in the context of newer features coming along such as instance hydration (#34).
I haven't seen much talk about this feature request for a long time, and I suspect this is something that only a small minority of Fusion users care much about. It seems like it would suffice to simply stop using Lua's syntax sugar for single-argument function calls rather than revising the API surface of New at this point.
I'm open to any further feedback on this issue for a little while longer but unless there's a good counterpoint that comes up I intend to close this feature request soon.

I think 1 is the best option. I personally don't like the use of the "no parentheses function call" syntax sugar, but style is always subjective. It still has issues outside of that though. I've seen quite a few questions about the "magical" syntax, and although it's not magic, it's something a lot of Lua programmers are not aware of.
I think in the case of Hydrate the curried function call is a little strange.
local hydrateButton = Hydrate(Button)

hydrateButton({})
hydrateButton({})

With currying, you can reuse the first function call, and you really shouldn't be hydrating an instance twice. Of course this argument still falls a little flat since the alternative would be:
Hydrate(Button)({})
Hydrate(Button)({})

Either way, when I think of currying I think of reuse, so I still think the argument holds a little bit.

Hydrate is mainly curried for consistency with how New works in existing Fusion codebases, and with how unresolved children may work (if we implement them).
In the 'generation' mental model (where all UI is created from scratch by code), the classic interpretation of New is to think of it as a component generator - you first create a component, then immediately call it to create an instance:
local NewTextLabel = New "TextLabel"

-- notice the parallels with user-defined components
local myTextLabel = NewTextLabel {
    Text = "Hello, world"
}

-- all together
local myTextLabel = New "TextLabel" {
    Text = "Hello, world"
}

This is why New has historically been curried like this, and I think it makes sense to keep it that way - within the generation mental model it's a very clean definition. Not to mention it also neatly lines up with utility methods like RbxUtility.Create which some developers may be familiar with from more general Roblox development history.
It's definitely true that currying makes less sense in the new hydration mental model that we're introducing, but it'd be rather strange to have an inconsistent syntax for working with instances:
-- New inline
local A = New "TextLabel" {
    Text = "Hello, world"
}

-- New partially applied
local TextLabel = New "TextLabel"

local B = TextLabel {
    Text = "Hello, world"
}

-- Hydrate instance
local C = Hydrate(PlayerGui.TextLabel, {
    Text = "Hello, world"
})

-- Hydrate unresolved child
local D = Hydrate("TextLabel", {
    Text = "Hello, world"
})

We could either make everything look more like New, which is non-breaking and I think is better for readability and writability - typos are hard to make and obvious to spot here - and also allows for the partial application use case for those who prefer it:
-- New inline
local A = New "TextLabel" {
    Text = "Hello, world"
}

-- New partially applied
local TextLabel = New "TextLabel"

local B = TextLabel {
    Text = "Hello, world"
}

-- Hydrate instance
local C = Hydrate (PlayerGui.TextLabel) {
    Text = "Hello, world"
}

-- Hydrate unresolved child
local D = Hydrate "TextLabel" {
    Text = "Hello, world"
}

Or, we can make everything look more like Hydrate, which is a breaking change - especially for anyone using partial application - though perhaps it reflects the underlying internal implementation better:
-- New inline
local A = New("TextLabel", {
    Text = "Hello, world"
})

-- New partially applied (no longer supported inbox)
local function TextLabel(props: PropertyTable): TextLabel
    return New("TextLabel", props) :: TextLabel
end

local B = TextLabel({
    Text = "Hello, world"
})

-- Hydrate instance
local C = Hydrate(PlayerGui.TextLabel, {
    Text = "Hello, world"
})

-- Hydrate unresolved child
local D = Hydrate("TextLabel", {
    Text = "Hello, world"
})

If the primary objective is better understanding of what the code is doing, just adding parentheses already achieves that easily. Better yet, it's non-breaking and it's completely opt-in, meaning people can still use the previous syntax should they prefer it:
-- New inline
local A = New("TextLabel")({
    Text = "Hello, world"
})

-- New partially applied
local TextLabel = New("TextLabel")

local B = TextLabel({
    Text = "Hello, world"
})

-- Hydrate instance
local C = Hydrate(PlayerGui.TextLabel)({
    Text = "Hello, world"
})

-- Hydrate unresolved child
local D = Hydrate("TextLabel")({
    Text = "Hello, world"
})

I've been leaning towards this last option more and more because it solves all of our problems with educating new developers and compatibility with auto-formatters without breaking large codebases and without removing choice from the user.
Perhaps an acceptable compromise would be to simultaneously introduce an overload of New that preserves partial application behaviour, though I'm not exactly keen on it for reasons I've stated before:
-- New inline
local A = New("TextLabel", {
    Text = "Hello, world"
})

-- New partially applied
local TextLabel = New("TextLabel")

local B = TextLabel({
    Text = "Hello, world"
})

-- Hydrate instance
local C = Hydrate(PlayerGui.TextLabel, {
    Text = "Hello, world"
})

-- Hydrate unresolved child
local D = Hydrate("TextLabel", {
    Text = "Hello, world"
})

It would also make the reusing the result of the new function not work anymore:

This is a good point - thanks for bringing this up! We definitely don't want to break this behaviour.

I don't think this should be a priority right now - there's currently a lot of other things with Fusion that need addressing which have very significant implications. I'm closing this issue for now, not as an indication that this is something we won't ever reconsider, but as an indication that this is not on our list of priorities right now.
Feel free to continue discussing here if you'd like :)


Using helper method of StoragePool API500 into Provider

Description
When StoragePoolProvider is loading StorageSystem to set it into StoragePool resource instance, the called method of StoragePool instance is now set_storage_sytem.
ATTENTION:

This PR cannot be merge for now, because the PR 286 of oneview-sdk-ruby must be merge before.
The tests are failling (consequently, the build) because the reason cited above.
For testing that changes you must change the path to oneview-sdk gem into your Gemfile, like code below:

gem 'oneview-sdk', path: '/oneview-sdk-ruby'

Issues Resolved
Fixes #343
Check List

[ ] New functionality includes testing.

[x] All tests pass ($ rake test).
[ ] New resources and/or actions have are included in the matchers.rb and matchers_spec.

[ ] New functionality has been documented in the README if applicable.

[ ] New functionality has been thoroughly documented in examples (please include helpful comments).

[x] Changes documented in the CHANGELOG.

Just test this when the SDK release is made to make sure everything is working well.

Let's generate the release of oneview-ruby-sdk to the "building" stop breaking


Database access

I am looking to build the database that stores all this information. Any suggestions as to where to start looking into getting bulk IPv4 and IPv6 data?

Hello, I have a question, are the IPv6 and IPv4 data for 'nameserver' or 'ip_network'?
We currently have 3 options to get the data from RedDog.
They are found in this link as options one, two and three.
I explain quickly:
Option 1: Generate a new Java data access library and use your private database schema. You can implement only the functions you need from the API "rdap-data-access-api".
Option 2: Using our "rdap-sql-provider" library and use your database schema, overwriting our SQL SELECT, to get the information from your database.
option 3: use our library and our database schema. Here it is necessary to export the information from your database to the new database schema that we propose.
We do not have a mechanism to transfer the information since the user databases are different from each other.
We hope that the documentation is useful to you and if you have any questions, do not hesitate to contact us.

Thanks for the response! I am trying to build an API that would go to all the Registries with either IPv4/ IPv6 IP address and then parse the response from each of these as JSON. Hence I wanted to know if the Database that you have built takes data from all the registries  periodically? if so, how did you go about creating this database?

Thanks for the response! I am trying to build an API that would go to all the Registries with either IPv4/ IPv6 IP address and then parse the response from each of these as JSON.

It sounds like an RDAP client.

Hence I wanted to know if the Database that you have built takes data from all the registries periodically?

no, our DB doesn't pull data from registries or registrars, the implementer of RedDog (RDAP server) must install the DB in its servers and populate it with its own data

Yes I am trying to build a RDAP client, can I use/modify RedDog code base to make calls to all the registries. If not, do you have any suggestion on any existing RDAP client I could look into?

Oh I see, now I understand you.
RedDog is intended to be an RDAP server, not an RDAP client.
but yes, you are free to modify RedDog.
I remember reading a presentation where RDAP clients were mentioned, but I can't find it or maybe it was just my imagination.

Thanks for the list, I am exploring openrdap as an reference. It looks pretty complete in its implementation. I will also evaluate metaregister. Was curious to know if you happen to know any Java based RDAP clients

Sorry for the delayed response.
I haven't used any RDAP client, to test the RedDog server, I used the web browser and two REST clients, Postman and Insomnia.
As an RDAP server, we care more that the JSON response is well formed and complies with RDAP RFCs.

ok thanks for your time and appreciate your efforts on RedDog


Adding kast option keepAmb

Since we made ambiguities report as errors, I'm adding this option to kast to visualize ambiguous programs better.

This is the second step in solving #828.

What is this actually used for? If it's just for describing ambiguities to users, why isn't the error message enough data?

Sometimes, seeing the entire AST can be more descriptive.
Also, Grigore had plans at one point to do disambiguation with K rules. Since we're eliminating the ambiguities, we have no way of doing that. We'd have to rely on external parsers.

After discussing with Dwight, we decided that: either the error message contains sufficient information to resolve the ambiguity, in which case we shouldn't need this feature, or it doesn't, in which case we should fix the error message.
We'll wait and see if the users complain about ambiguities being errors and proceed then.


Timestamp type column value is always "1970-..."

I'm trying to use the timestamp type, but I have always the value 1970-xx-xx xx:xx:xx.
Here my tests :
new Cassandra\Type\Timestamp(1409830696263000);

new Cassandra\Type\Timestamp(microtime(true)*1000);

But always got "1970..." date.
Here the info about versions & table :
[cqlsh 5.0.1 | Cassandra 2.1.3 | CQL spec 3.2.0 | Native protocol v3]
CREATE TABLE bar.foo_bar (
    user_id uuid,
    foo_id int,
    created_at timestamp,
    updated_at timestamp,
    PRIMARY KEY (user_id, foo_id)
) WITH CLUSTERING ORDER BY (foo_id ASC)
    AND bloom_filter_fp_chance = 0.01
    AND caching = '{"keys":"ALL", "rows_per_partition":"NONE"}'
    AND comment = ''
    AND compaction = {'min_threshold': '4', 'class': 'org.apache.cassandra.db.compaction.SizeTieredCompactionStrategy', 'max_threshold': '32'}
    AND compression = {'sstable_compression': 'org.apache.cassandra.io.compress.LZ4Compressor'}
    AND dclocal_read_repair_chance = 0.1
    AND default_time_to_live = 0
    AND gc_grace_seconds = 864000
    AND max_index_interval = 2048
    AND memtable_flush_period_in_ms = 0
    AND min_index_interval = 128
    AND read_repair_chance = 0.0
    AND speculative_retry = '99.0PERCENTILE';

How can I have a good value ?
Thanks :)

It's appear that timestamp & timeuuid are not available on 32 bits system because of the bit operation.
I'll create a pull request to add this warning in the README.md, I would be great, imo. Feel free to merge it or not, if you think it's not relevant :)


Unable to run JS in Development Mode

Hi, I tried running JS in Development Mode through Gradle by using jsBrowserRun but I'm getting the following errors:
[webpack-cli] TypeError: cli.isMultipleCompiler is not a function [webpack-cli] TypeError: cli.isMultipleCompiler is not a function
I tried running this by using the Template Project? I have Webpack 4.10 installed, running Linux if it helps.
Worth mentioning I got an output of the JS game when running jsBrowserDistribution that works fine.

Looks like this is a bug on Kotlin plugin side: https://youtrack.jetbrains.com/issue/KTIJ-22030. Once
A work around to get this working is to add the following to the root build.gradle.kts.
build.gradle.kts
rootProject.extensions.configure<org.jetbrains.kotlin.gradle.targets.js.nodejs.NodeJsRootExtension> {
    versions.webpackCli.version = "4.10.0"
}


Make the output easier to read.

I just added new lines. will look something like this:
Circular dependency detected:
__tests__/deps/e.js
-> __tests__/deps/f.js
-> __tests__/deps/g.js
-> __tests__/deps/e.js

I appreciate the work here, but I'm fine with the output the way it is. I'm going to go ahead and close this.


no labels shown on y-axis for certain values

http://localhost:7101/api/v1/graph?q=2027

For large enough values if the line is flat enough it can fall between major tick marks and no labels will be shown on the y-axis.

The workaround is to set the lower bound to zero.


Weird characters on the next line after prompt

Current behavior
Every command on the terminal is repeated along with some weird characters. I did notice that some characters in the UTF-8-demo were not rendered correctly. I am using Fira Code font on CentOS 6.7. I've installed spaceship-prompt with zplug. Is there someway I can workaround the issue?
Expected behavior
No weird characters are displayed or a workaround exists.
Relevant Zsh configuration (.zshrc)
I'm using the default configuration. There is no customization in my .zshrc
Environment
Spaceship version: 3.9.1
Zsh version: 5.6.2
Zsh framework: oh-my-zsh
Zsh plugin manager: zplug
Terminal emulator: GNOME Terminal 2.31.3
Operating system: CentOS 6.7
Screenshot

@arjunurs does this happen on every command ? Please also check your Zsh plugins for possible culprit.
It's highly unlikely this related to spaceship-prompt, Closing this now. Feel free to reopen if you feel this is related to spaceship-prompt.


How this works?

How this works? How does Google FCM agree to send other apps' notifications ts to this?
Telegram -> FCM -> Google Services on the device -> Telegram app

This app can be used to forward notifications to app supporting UnifiedPush. The protocol between push server and push app is FCM, so you must have Google Services installed.
This is useful if your app supports UnifiedPush and does not support FCM directly and you want to use FCM anyway :)

This app can be used to forward notifications to app supporting UnifiedPush. The protocol between push server and push app is FCM, so you must have Google Services installed.
This is useful if your app supports UnifiedPush and does not support FCM directly and you want to use FCM anyway :)

Yup, but I don't understand how you can do that. If the Application Server supports only UnifiedPush and I configure it to send my notifications to FCM then FCM should support UnifiedPush too, but FCM have own propietary protocol between Application Server and FCM, so how? And if that works, I need make dev account to FCM and configure FCM send all notifications to Google Service on my device, but how Google Service accept to send them to one app?

Like most of the applications, there is a server between your application server and google services. We call it a push gateway. Basically, your server supporting a protocol compatible with UnifiedPush (like webpush) :
[App Server]==webpush (UnifiedPush compatible)==>[Push Gateway]==FCM server protocol==>[Google Server]==Fcm internal protocol==>[Google Services (phone)]==FCM Intent==>[FCM-Distributor (phone)]==UnifiedPush==>[Your app (phone)] !

So, if I understand correctly, if I disable/remove google services - this software will not replace their FCM for me?

Exactly

☹

But for applications using UnifiedPush, you can install another distributor they don't use google services: https://unifiedpush.org/users/distributors/


Sg redis node socket chat

Hi - the model that we're trying to follow with this repo is to create separate branches for every blog post that we do. This keeps the master clean and allows users to only get the code related to a specific post that they want.
For more blog posts, you can check out: https://scalegrid.io/blog/
Thanks for the PR, though!


Suggest using @property tag in KDoc instead of putting comment before property in constructor

class CliArgument @JsonCreator internal constructor(
        // short argument representation like -h
        @param:JsonProperty("shortName") private val shortName: String
)

should be
/**
 * @property shortName short argument representation like -h
 */
class CliArgument @JsonCreator internal constructor(
        @param:JsonProperty("shortName") private val shortName: String
)

Also I think now we don't check documentation on accessible fields declared as constructor parameter at all.

We also can have a customizable switch to suggest to replace KDoc on properties and use @property tag instead.

Not added to a codestyle guide. Need to add it.


Command failing when setting stdout and stderr

This was roughly my command:
Command(["echo", "foo bar"], stdout=sys.stdout, stderr=sys.stdout)

And this was the error:
Traceback (most recent call last):
  File ".../datatypes/command.py", line 82, in __iter__
    for line in iter(output.readline, b""):
AttributeError: 'NoneType' object has no attribute 'readline'

During handling of the above exception, another exception occurred:

  ...
  File ".../datatypes/command.py", line 88, in __iter__
    output.close()
AttributeError: 'NoneType' object has no attribute 'close'

This works for passthrough using subprocess:
subprocess.check_call(["echo", "foo bar"], shell=False)


WIP: Cross references

Works related to https://github.com/DataStewardshipWizard/dsw-common/issues/11

I fixed the existing xrefs now. Will you be my second pair of eyes, @MarekSuchanek ? I think this can be merged now.


Add module descriptions to API

Modules that still need descriptions (the ones not mentioned are done):

[x]   environment (to be revised, currently not very clear to me)
[x]   propagation (to be revised, currently not very clear to me)
[x]   math (empty)
[x]   util (empty)
[x]   plotting (empty)

This issue looks pretty advanced to me, is this maybe already closed?

Modules that still need descriptions (the ones not mentioned are done):

[ ] environment (to be revised, currently not very clear to me)
[ ] propagation (to be revised, currently not very clear to me)
[ ] math (empty)
[ ] util (empty)
[ ] plotting (empty)

I removed Geoffrey and assigned myself. Once it is done, I will ask @DominicDirkx to review the module descriptions.

@DominicDirkx not sure if you have time to take care of this in the next days, but it should be something very quick to do. Otherwise I will do it

@FilippoOggionni if you could take care of this, that'd be great

Now each module and submodule have at least one between summary and extended_summary. I pushed the changes and triggered a new build of the API docs, which should be online soon. I will close the issue and move it to review.
@DominicDirkx could you please quickly review these for all modules and, if needed, make the necessary changes?

@DominicDirkx reminder about this 🙂


Adds rtype aim to README.

Please, review the spelling and grammar. :)
Closes #106

By "Should be a statement: no place for uncertainty.".
I meant that we don't "aim": we consider that succeeded. The way you interpreted it is funny though :)
That is why I shortened it to a statement not a goal.

☺
How about "No place for uncertainty for JS developers."?
On Mon, 4 Jul 2016, 00:20 Marc G<EMAIL_ADDRESS>wrote:

By "Should be a statement: no place for uncertainty.".
I meant that we don't "aim": we consider that succeeded. The way you
interpreted it is funny though :)
That is why I shortened it to a statement not a goal.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/ericelliott/rtype/pull/107#issuecomment-230155717,
or mute the thread
https://github.com/notifications/unsubscribe/ABjCL2WsSCAn1O5BY-EjkbMTi3h0pGc4ks5qR8U8gaJpZM4JD125
.

Low learning curve thanks to the usage of a syntax specifically geared towards JS developers

It's turning into bikeshedding at this point though. @ericelliott hammer this please.

I'm totally fine with

Low learning curve thanks to the usage of a syntax specifically geared towards JS developers

It was directed to myself: it could discuss that sentence for hours :)
Settle for something simple like "low learning curve for EcmaScript developers" or wait for Eric's merge.

How about "Low learning curve for JS developers"?

https://davidmarkfans.wordpress.com/2010/08/13/comp-lang-javascript-javascript-vs-javascript/


Undefined reference to symbol 'SHA1@@OPENSSL_1_1_0' on updating curl

After updating curl via cargo I got linking error when running `cargo build --release
  = note: /usr/bin/ld: /path1/path2.rlib(mylib.mylib.3bvqi7pi-cgu.0.rcgu.o): undefined reference to symbol 'SHA1@@OPENSSL_1_1_0'
          /usr/bin/ld: /usr/lib/libcrypto.so.1.1: error adding symbols: DSO missing from command line
          collect2: error: ld returned 1 exit status

Updated versions:
$ cargo update -p curl
    Updating crates.io index
    Updating curl v0.4.17 -> v0.4.22
    Updating curl-sys v0.4.11 -> v0.4.20

openssl dep: openssl-sys 0.9.48
Local openssl: OpenSSL 1.1.1c  28 May 2019
Piece of code that most likely fails:
extern "C" {
    pub fn SHA1(d: *const c_uchar, n: size_t, md: *mut c_uchar) -> *mut c_uchar;
}

When linking statically openssl on other machines it works

So I've just accidentally fixed this just by adding extern crate openssl_sys; to the lib.rs. So this line brings openssl_sys to linker, still can't get why this worked well before

Linking is pretty tricky, but yes if you're using the symbol you need to declare the library, and that should fix things.


JSON::LD::API.toRdf, when given a Hash as input, may mutate it

When given a hash with an embedded @context, it can end up removing @context from the nested hash.
This seems to be because of https://github.com/ruby-rdf/json-ld/blob/9fd51e0622ebe5c52c736d56f31ddf74b4eb7bb5/lib/json/ld/expand.rb#L91

Yes, but I believe this is removing it from a copy of the original input, unless you have a use case that illustrates an actual issue created because of that. That said, the code would probably work using input['@context'] instead of input.delete('@context').

I'll get an update out shortly with a fix. Thanks for the use case.

I pushed a fix to the develop branch. If that solves your issues, I'll push a new release out.

It does solve it! Thank you for the quick fix!


Documentation should reflect that file inputs must always be Optional [Or, Connexion should handle it differently]

Description
[This is a narrowed version of #1811, but reflects my experiences after the fixes mentioned therein were made.  I still think there are problems here and that is what I am trying to capture in this bug report].
Hi again.  I agree that the fixes in 3.0.2 have helped, but I think the documentation still needs clarification or the behavior needs an update.  It seems that you must always declare parameters that could be of type "file" as =None, because the user could always pass a non-file type.
I retested this with 3.0.2 and the behavior remains the same.  It seems that you must declare anything which handles a file as:
async def foobar(image: Optional[UploadFile] = None)

Here is a demonstration using the spec from the docs.
import connexion

def foo_get(file):  # <--- as per documentation
    assert isinstance(file, starlette.UploadFile)

app = connexion.AsyncApp(__name__, specification_dir="spec")
app.add_api("foo.yaml")

if __name__ == "__main__":
    app.run(f"{Path(__file__).stem}:app", port=8080)

openapi: "3.0.1"

info:
  title: Form Data
  version: "1.0"
servers:
  - url: /

paths:
  /path:
    post:
      operationId: foo.foo_get
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                file:
                  type: string
                  format: binary
      responses:
        200:
          description: OK

$ curl -F file=sometext http://localhost:8080/path

Expected behaviour
Something that isn't HTTP 500.  It seems like either:

Connexion should infer from the OpenAPI and the function parameters that the developer is expecting an UploadFile object, and therefore this request should return HTTP 400 and fail validation
OR Connexion should be agnostic about the type, and pass what the user gave, either a string (or bytes or whatever) OR the UploadFile, and let the developer sort it out.
OR punt and tell everyone that all file arguments should be Optional[UploadFile], and tell me that I need to do my own not-None checking.

Actual behaviour
Traceback:
INFO:     Application startup complete.
TypeError("foo_get() missing 1 required positional argument: 'file'")
Traceback (most recent call last):
  File "/home/dp/venv/lib/python3.10/site-packages/starlette/_exception_handler.py", line 44, in wrapped_app
    await app(scope, receive, sender)
  File "/home/dp/venv/lib/python3.10/site-packages/connexion/middleware/swagger_ui.py", line 220, in __call__
    await self.router(scope, receive, send)
  File "/home/dp/venv/lib/python3.10/site-packages/starlette/routing.py", line 746, in __call__
    await route.handle(scope, receive, send)
  File "/home/dp/venv/lib/python3.10/site-packages/starlette/routing.py", line 459, in handle
    await self.app(scope, receive, send)
  File "/home/dp/venv/lib/python3.10/site-packages/starlette/routing.py", line 775, in __call__
    await self.default(scope, receive, send)
  File "/home/dp/venv/lib/python3.10/site-packages/connexion/middleware/swagger_ui.py", line 233, in default_fn
    await self.app(original_scope, receive, send)
  File "/home/dp/venv/lib/python3.10/site-packages/connexion/middleware/routing.py", line 153, in __call__
    await self.router(scope, receive, send)
  File "/home/dp/venv/lib/python3.10/site-packages/starlette/routing.py", line 746, in __call__
    await route.handle(scope, receive, send)
  File "/home/dp/venv/lib/python3.10/site-packages/starlette/routing.py", line 459, in handle
    await self.app(scope, receive, send)
  File "/home/dp/venv/lib/python3.10/site-packages/starlette/routing.py", line 746, in __call__
    await route.handle(scope, receive, send)
  File "/home/dp/venv/lib/python3.10/site-packages/starlette/routing.py", line 288, in handle
    await self.app(scope, receive, send)
  File "/home/dp/venv/lib/python3.10/site-packages/connexion/middleware/routing.py", line 47, in __call__
    await self.next_app(original_scope, receive, send)
  File "/home/dp/venv/lib/python3.10/site-packages/connexion/middleware/abstract.py", line 268, in __call__
    return await operation(scope, receive, send)
  File "/home/dp/venv/lib/python3.10/site-packages/connexion/middleware/security.py", line 95, in __call__
    await self.next_app(scope, receive, send)
  File "/home/dp/venv/lib/python3.10/site-packages/connexion/middleware/abstract.py", line 268, in __call__
    return await operation(scope, receive, send)
  File "/home/dp/venv/lib/python3.10/site-packages/connexion/middleware/request_validation.py", line 142, in __call__
    await self.next_app(scope, receive, send)
  File "/home/dp/venv/lib/python3.10/site-packages/connexion/middleware/abstract.py", line 268, in __call__
    return await operation(scope, receive, send)
  File "/home/dp/venv/lib/python3.10/site-packages/connexion/middleware/lifespan.py", line 26, in __call__
    await self.next_app(scope, receive, send)
  File "/home/dp/venv/lib/python3.10/site-packages/connexion/middleware/abstract.py", line 268, in __call__
    return await operation(scope, receive, send)
  File "/home/dp/venv/lib/python3.10/site-packages/connexion/middleware/context.py", line 25, in __call__
    await self.next_app(scope, receive, send)
  File "/home/dp/venv/lib/python3.10/site-packages/connexion/middleware/abstract.py", line 268, in __call__
    return await operation(scope, receive, send)
  File "/home/dp/venv/lib/python3.10/site-packages/connexion/apps/asynchronous.py", line 69, in __call__
    response = await self.fn()
  File "/home/dp/venv/lib/python3.10/site-packages/connexion/decorators/main.py", line 188, in wrapper
    return await decorated_function(request)
  File "/home/dp/venv/lib/python3.10/site-packages/connexion/decorators/response.py", line 191, in wrapper
    handler_response = await function(*args, **kwargs)
  File "/home/dp/venv/lib/python3.10/site-packages/connexion/decorators/parameter.py", line 115, in wrapper
    return await function(**kwargs)
  File "/home/dp/venv/lib/python3.10/site-packages/connexion/decorators/main.py", line 175, in wrapper
    return await run_in_threadpool(function, *args, **kwargs)
  File "/home/dp/venv/lib/python3.10/site-packages/starlette/concurrency.py", line 35, in run_in_threadpool
    return await anyio.to_thread.run_sync(func, *args)
  File "/home/dp/venv/lib/python3.10/site-packages/anyio/to_thread.py", line 33, in run_sync
    return await get_async_backend().run_sync_in_worker_thread(
  File "/home/dp/venv/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 2106, in run_sync_in_worker_thread
    return await future
  File "/home/dp/venv/lib/python3.10/site-packages/anyio/_backends/_asyncio.py", line 833, in run
    result = context.run(func, *args)
TypeError: foo_get() missing 1 required positional argument: 'file'

Steps to reproduce
Additional info:
Output of the commands:

python --version 3.10.13
pip show connexion | grep "^Version\:".  Version: 3.0.2

I should say that in my example above, I left out:
              required:
                - file

Which was a mistake.  However, the behavior remains the same with and without it in my testing.

Thanks @danielbprice.
I agree that the behavior should be updated to match the first expected behavior in your list:

Connexion should infer from the OpenAPI and the function parameters that the developer is expecting an UploadFile object, and therefore this request should return HTTP 400 and fail validation

In the validator, we should validate that we receive a file object when the schema defines it. Shouldn't be too hard if we develop against your example as a test case.


 I experiencing the same with almost every project

Im not a contributor but this may be fixed as they move to a different syntax tree parser.  You can check out the slaang project

so there is no way to fix this thing? I experiencing the same with almost every project

Im not a contributor but this may be fixed as they move to a different syntax tree parser. You can check out the slaang project

That is correct. We are rolling out Slang internally within the extension (it is currently used to support the outline view).
The Slang project is working on Solidity lang binding information to enable go to definition type use cases. Once we have integrated Slang's binding info and its more robust project analysis, there should be significant improvements in our navigation support.


[Mac OS Development Environment] Trading url is not reachable

Hi,
I followed the instructions in below page to setup dev. environment on Mac.
https://github.com/rubykube/peatio/blob/master/docs/setup-osx.md
After calling the following url:  http://localhost:3000/trading/1, I'm getting following response:
Response:
The URL you requested was not found.
Rails.root: /Users/spidrweb/peatio
Application Trace | Framework Trace | Full Trace
app/routers/routing_essentials.rb:3:in not_found!' app/routers/black_hole_router.rb:5:in call'
lib/middleware/security.rb:11:in call' lib/middleware/i18n_js.rb:9:in call'
All other pages are ok. I might be missing any configuration, any help is appreciated.
thanks
Ugur

bundle exec rake db:drop db:create db:migrate db:seed try this first

Hi @uguracar
Please don't follow docs inside folder. They are lot outdated. The best choice for you will be https://github.com/rubykube/workbench. Please try this.


Fix ios ConnectivityChangedEvent sometimes doesn't fire

Please take a moment to fill out the following:
Fixes issue #

Fix ios ConnectivityChangedEvent sometimes doesn't fire
Changes Proposed in this pull request:
Put previousInternetStatus = internetStatus inside of if(triggerChange) clause
Call UpdateConnected(); inside constructor

PR Checklist

[x] Has tests (if omitted, state reason in description)
[x] Rebased on top of master at time of PR
[x] Consolidate commits as makes sense

Hello!
What is the status on this PR? Would be great to see a release with this issue fixed. If I can assist somehow on the PR I am willing to.

Well, I am not sure where this comes up as it wasn't filed as a bug....
From what I can tell you shouldn't fire an even there as that is the constructor and not sure why things were moved inside at all for saving the state....
Does Xamarin.Essentials have this issue at all?

I have not tried using Xamarin.Essentials so i do not know if the issue is there also. I should maybe test with Essentials and see if that helps first, thanks!