• Announcement: NaviServer 4.99.28 available

    From gustafn@21:1/5 to All on Sun Sep 10 23:30:28 2023
    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/

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?B?c3VuZGFyIPCfh67wn4ez?=@21:1/5 to All on Wed Sep 13 00:39:09 2023
    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 :)

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Rich@21:1/5 to bpsundar@gmail.com on Wed Sep 13 13:37:42 2023
    sundar 🇮🇳 <bpsundar@gmail.com> wrote:
    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 :)

    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?B?c3VuZGFyIPCfh67wn4ez?=@21:1/5 to All on Wed Sep 13 22:19:37 2023
    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?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From gustafn@21:1/5 to All on Thu Sep 14 05:16:21 2023
    sundar 🇮🇳 schrieb am Donnerstag, 14. September 2023 um 07:19:41 UTC+2:
    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?

    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?B?c3VuZGFyIPCfh67wn4ez?=@21:1/5 to All on Thu Sep 14 06:22:48 2023
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)