OpenWrt/LEDE Project

Welcome to the OpenWrt/LEDE Project bug reporting and issue tracking system

Problems to be reported here are for the OpenWrt/LEDE Project targets, sources, toolchain, core packages, build procedures, distribution and infrastructure. Guidelines for submitting a good bug report can be found at the OpenWrt/LEDE Project website. Problems related to LuCI or OpenWrt packages need to be reported in their repositories:

Notifications of all submissions and task changes are sent to lede-bugs@infradead.org.

OpenedIDCategoryTask TypePrioritySeveritySummaryReported InStatus
18.01.20202747PackagesBug ReportVery LowLowcompiling wpa_supplicant without CONFIG_UBUS=y will fai...TrunkUnconfirmed Task Description

Uncomment CONFIG_UBUS=y in one of the config files of wpa_supplicant.
Compile hostapd.

Now you will get following error:

wpa_supplicant_i.h:313:21: error: field ‘ubus_global’ has incomplete type

struct ubus_object ubus_global;

Workaround is to delete 600-ubus_support.patch.

21.04.20192248PackagesFeature RequestVery LowLowuhttpd: implement ubus event listener via Server-Sent E...TrunkWaiting on reporter Task Description

Usecase:
As a web developer I would benefit from having the possibility to send events from the server to the browser so the browser can react to it dynamically.

The proposed implementation is the leanest possible.

A SSE (Server-Sent Event) is a simple protocol on top of basic http polling to send messages from the http server to the browser for the purpose of instant notifications.
It comes implemented in all major browsers, including mobile.

If paired with `ubus listen` or `ubus monitor`, a seamless integration with the ubus pipeline could be implemented.

We tried to implement it by adding an option in this line of code but got stuck in our lack of corutine mechanisms and how uhttpd works.

The difference with the call and list options is that this one should be long-lived and progressive, preventing the dreaded polling from the web (also, better us of resources, more elegant implementation, etc).

As an example, a very basic implementation of a SSE server in php:

<?php
header('Content-Type: text/event-stream');
header('Cache-Control: no-cache');

echo "data: \"hello world\"" . PHP_EOL;
echo PHP_EOL;
echo "data: \"goodbye world\"" . PHP_EOL;
echo PHP_EOL;
ob_flush();
flush();

An example of a very basic implementation of a SSE client in HTML:

<html>
	<body></body>
	<script>
	var source = new EventSource("demo_sse.php");
	source.onmessage = function(event) {
		document.getElementById("result").innerHTML += event.data + "<br>";
	}; 
	</script>
</html>
13.11.20181948Base systemFeature RequestVery LowLowlibubox and libubus in C++ codeAllUnconfirmed Task Description

Hello,

we try to develop UBUS and UCI application in C++. For now we are not able to compile our applications without patching ubus and libubox in the following way.

[develict@DCompiler ~]$ tmux att -t 8
--- a/libubus.h
+++ b/libubus.h
@@ -14,6 +14,10 @@
 #ifndef __LIBUBUS_H
 #define __LIBUBUS_H

+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #include <libubox/avl.h>
 #include <libubox/list.h>
 #include <libubox/blobmsg.h>
@@ -414,4 +418,8 @@ static inline int ubus_unregister_event_
     return ubus_remove_object(ctx, &ev->obj);
 }

+#ifdef __cplusplus
+}
+#endif
+
 #endif

Is it possible to use this libraries without its patching?

 


09.05.20181536Base systemBug ReportVery LowMediumUbus: not creating needed /var/run directoryAllUnconfirmed Task Description

/sbin/init create /tmp/run directory.
ubus uses /var/run directory that’s normally linked to /tmp aka /tmp/run and starts up.

If by accident /var is deleted and the router is rebooted the system hangs forever.
It does not help to create an empty /var directory /var/run is not created by ubus.

Console shows: “procd - early -” and afterwards “procd - ubus -”
The needed directories are created later inside “/etc/rc.d/S10boot” aka “/etc/init.d/boot”

30.04.20181525Base systemBug ReportVery LowMediumlisting more than ~230 objects fails (ubusd discards me...TrunkUnconfirmed Task Description

When registering more than ~250 objects on ubus, calling

ubus list

on the command line hangs before finishing to list all the registered objects. It keeps waiting for data and the sequence end message on the socket forever.

This issue was witnessed on x86 VM builds of Chaos Calmer and LEDE 17.01.4 as well as ubus on a Linux Desktop. The number of objects being successfully listed varied for each system (232 for CC VM, 252 for LEDE VM and 572 on Desktop).

The root of the problem seems to be a limitation of the ubus daemon. When doing a recursive lookup, one message per object is sent from the daemon to the client. The current implementation of the ubus daemon seems to discard messages, when the fixed size tx queue is full.

The code responsible for this behavior can be found in method ubus_msg_enqueue() in ubusd.c:

if (cl->tx_queue[cl->txq_tail])
	return;

Calling one or more methods in rapid sequence could potentially lead to the same problem.

10.03.2017614Base systemBug ReportVery LowMedium/usr/lib/lua/luci/util.lua:623: Unable to establish ubu...TrunkUnconfirmed Task Description

when save&apply on system>mount luci always crash
error message:
/usr/lib/lua/luci/util.lua:623: Unable to establish ubus connection
stack traceback:

[C]: in function 'assert'
/usr/lib/lua/luci/util.lua:623: in function 'ubus'
/usr/lib/lua/luci/dispatcher.lua:347: in function 'dispatch'
/usr/lib/lua/luci/dispatcher.lua:141: in function </usr/lib/lua/luci/dispatcher.lua:140>
 


Showing tasks 1 - 6 of 6 Page 1 of 1

Available keyboard shortcuts

Tasklist

Task Details

Task Editing