Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Announcement: NaviServer 4.99.28 available

102 views
Skip to first unread message

gustafn

unread,
Sep 11, 2023, 2:30:32 AM9/11/23
to
Dear all,

I am glad to announce that the release of NaviServer 4.99.28 is available at SourceForge [1]. This release is a pure bug-fix and maintenance release, which fixes a bug annoying for some OpenACS users.
See below for a summary of the changes.
All the best!

-gustaf neumann

[1] https://sourceforge.net/projects/naviserver/files/naviserver/4.99.28/

=======================================
NaviServer 4.99.28, released 2023-09-06
=======================================

49 files changed, 851 insertions(+), 328 deletions(-)

New Features:
-------------
- None

Bug Fixes:
----------

- Fixed incorrect list quoting for "filter" in urlspace
introspection. This led to display problems, e.g. in the nsstats
module.

- Fixed naming Inconsistency: Unified the term "fastpath" across
configuration, API-interface, and documentation.

- Fixed potential crash in Ns_SetIUpdateSz(): Fixed a bug that could
lead to a crash when updating the content-type header field with a
lowercase field name via the old C API.

Many thanks to Brian Fenton for reporting the problem and his help
for debugging it.

Code Maintenance:
-----------------

- New API Function Ns_PlainUrlPath: Checks if a given URL path is
"plain," meaning it doesn't contain a query or fragment. Useful
for data validation in configuration files and Tcl API calls.

- Improved Validation when registering request handler. Previously,
it was possible to register request handlers for paths containing
query variables and fragments, which were never matched.

- Added Missing "-server" Argument: The "-server" argument was added
to ns_unregister_op and ns_unregister_url2file, allowing for more
centralized management (e.g. from the nsstats module).

- Added a more Portable Way of Printing NULL Pointer: Improved
portability for printing NULL pointers across different compilers,
which could laed to false positives in the regression test.

- Extended and Simplified Test Cases: Several commits were made to
improve and extend test cases across different modules and
scenarios.

- Improved and corrected documentation, including styling changes,
bug fixes, and providing more detailed information.


Modules:
--------
The following list contains the most important changes:

- Extending nsstats:

* Introduced templating to improve style-ability
* Provided a more modern GUI based on the CSS classes from w3schools
* Added management of request handlers
* Added management of url2file mappings

- Rework of module nsdbbdb:
* properly initializing mutex variables (many thanks to John Buckman)
* support for LMDB (Lightning Memory-Mapped Database)
* Improved configurability for Makefile
* Modernization of C code (better following style guide)
* Added debug support via Debug(bdb)

Build nsdbbdb with Berkeley DB 6.2.32 (results in nsdbbdb.so)
make DBINCLUDE=/opt/local/include/db62 DBLIB=/opt/local/lib/db62/

Build nsdbbdb with LMDB (Lightning Memory-Mapped Database) (results in nsdblmdb.so)
make LMDB=1 DBINCLUDE=/opt/local/include DBLIB=/opt/local/lib/

sundar 🇮🇳

unread,
Sep 13, 2023, 3:39:12 AM9/13/23
to
Hello,
I am new to Tcl and Naviserver, I downloaded this yesterday (Sep 12th 2023) and when I tried to connect I get the error,
** Error: pidfile: failed to open pid file '/usr/local/ns/logs/nsd.pid': 'Permission denied'
and here is the output for the file permission,
** drwxr-xr-x 2 nsadmin nsadmin 4096 Sep 13 08:09 /usr/local/ns/logs/

Am I missing something?

p.s. I have just started to learn Tcl, so please bear with my ignorance :)

Rich

unread,
Sep 13, 2023, 9:37:47 AM9/13/23
to
This above is not a Tcl issue (at least not as you have detailed it
above).

This is a Linux permissions issue. Are you running the server as the
"nsadmin" user. If not you *will* get exactly this error, because the
only user allowed to make changes to that directory is the "nsadmin"
user.

Most likely you just need to launch the server as the nsadmin user.

sundar 🇮🇳

unread,
Sep 14, 2023, 1:19:41 AM9/14/23
to
here are the details to help in this regard,

[void@void bin]$ ./nsd -u void -t /home/void/Downloads/code/tcl/nsproj/pages/myserver.tcl -f
[void@void ~]$ ps aux | grep nsd
void 9116 0.1 0.1 92208 11904 pts/2 Sl+ 10:13 0:00 ./nsd -u void -t /home/void/Downloads/code/tcl/nsproj/pages/myserver.tcl -f
void 9200 0.0 0.0 6588 2432 pts/5 S+ 10:14 0:00 grep nsd
[void@void ~]$ ss -tuln | grep 8484

when the last command `ss ...` is executed there is no response indicating that no process is listening on the specific port, even though the server is running.
am i missing something?

gustafn

unread,
Sep 14, 2023, 8:16:24 AM9/14/23
to
dear sunar, as a beginner, i would recommend to start in a first step what the installation suggests to you.
After a "make install" on a unix-like system, you will see something like

You can now run NaviServer by typing the following command:
/usr/local/ns/bin/nsd -t /usr/local/ns/conf/nsd-config.tcl -f

Probably, you got also some output concerning permissions and a command to setup the permissions in the installation directory. The flag "-f" at the end of the command above denotes that you want to run the server in the foreground (which means, the output of the system log is on the console, on which you started NaviServer). This mode is good for testing and experimenting, since the developer gets immediate output.

When you start with the default configuration, the output will contain something like

[14/Sep/2023:13:57:09][83853.16fc0b000][-driver:nssock:0-] Notice: nssock:0: listening on [0.0.0.0]:8080

which means that you can connect via all IP addresses of your machine on port 8080.

In your example, you are starting the server with a user "void", which is unusual, but certainly possible. You can use any kind of user, but you have to make sure, that the server is able to read and write in the installation directory (e.g. writing pid-files, log-files). From your output, one can see that the user + group is set to "nsadmin", and that the user "void" does not have rights on the folder

** drwxr-xr-x 2 nsadmin nsadmin 4096 Sep 13 08:09 /usr/local/ns/logs/

So, starting with .... -u nsadmin .... instead of ... -u void ... will help.
I would recommend to kill all nsd-processes on your system and start a fresh instance and the first sample configuration file and adapt this in a second step according to your needs.

sundar 🇮🇳

unread,
Sep 14, 2023, 9:22:51 AM9/14/23
to
thank you. Started Naviserver :)
>> [14/Sep/2023:18:26:25][19348.7f2b9dffb6c0][-driver:nssock:0-] Notice: nssock:0: listening on [0.0.0.0]:8080
0 new messages