Software: Apache. PHP/8.1.30 uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root) Safe-mode: OFF (not secure) /usr/share/doc/proftpd-doc/howto/ drwxr-xr-x |
Viewing file: Select action/file-type: ProFTPD: Debugging ProblemsUsers of ProFTPD will often encounters problems. It happens with all software, not just ProFTPD. How, then, does the user track down the cause of the problem, and fix it? This is the art of debugging. When users post these problems are the mailing lists, it is extremely helpful to include the following bits of information to help find the answer. Even better is when the user follows these steps and determines the solution for themselves.
Keep in mind that
We want to help you, but to do that, we need to know as many details as
possible. One goal is for us to be able to reproduce the issue locally. That's
why providing the `proftpd -V' output, and the You will hear requests for these details come up quite a bit. It's worth pointing out why that is.
Know the Version $ proftpd -V $ proftpd -vvWhen reporting issues, please include the output from both of these commands. It is possible that the problem you are encountering is due to some bug that may already be fixed in a more current version, fixed in the CVS repository, or has a bug report with an attached patch. Searching http://bugs.proftpd.org will often yield useful information, depending on the keywords used in the search.
Know the Modules $ proftpd -lKnowing the modules helps to pinpoint the source of error messages (e.g. mod_tls and certificate files).
Perform Configuration Check $ proftpd -td10The -t option directs the server to only do a syntax check, to
parse the configuration file but stop before actually starting its operations
as a server. The -d10 will cause the server to display debugging
messages during this testing of the configuration file. Another useful
command is:
$ proftpd -c /path/to/new/config/file -td10which lets you test the syntax of some new configuration file before it is put into production.
If you are still having problems, and you have verified that your
Collect Debug Information $ proftpd -nd10Note: make sure that no other proftpd instances are
running before using this command, otherwise you will see:
Failed binding to 0.0.0.0, port 21: Address already in useThis message means that some other program is already bound to the socket at that address/port. This message will also appear if you attempt the debugging command with a ServerType of inetd ; this
is described below.
Once working, the above debugging command will display lots of information on the connected terminal's screen, both as the server starts up and during the servicing of any clients. If clients are having trouble logging in or authenticating, the debug messages reported by the server when a client connects are much more useful than knowing the messages displayed by the client, as the client does not know why it cannot log in. If asked to send debugging information to the mailing list, you can send the relevant snippets (if you know what the relevant debug messages are), or you can capture the debug output to a file: $ proftpd -nd10 2>&1 >& /path/to/debug/fileand send that file, compressed, along with your post.
The above method works if you have
Note that use of the
As of version 1.2.8rc1, ProFTPD supports a
Locate Log Files
Debugging Segfaults golem.castaglia.org (127.0.0.1[127.0.0.1]) - ProFTPD terminating (signal 11)then you have most likely encountered a segfault. This is a particular bad error, and can be hard to track down.
In version 1.3.1rc1, ProFTPD gained the ability to provide better logging
to help track down these sorts of bugs. To enable this ability, you will
need to configure $ ./configure --enable-devel=stacktrace ...and run your proftpd like normal. If a segfault occurs, the logs
should show something like this:
golem.castaglia.org (127.0.0.1[127.0.0.1]) - ProFTPD terminating (signal 11) golem.castaglia.org (127.0.0.1[127.0.0.1]) - FTP session closed. golem.castaglia.org (127.0.0.1[127.0.0.1]) - -----BEGIN STACK TRACE----- golem.castaglia.org (127.0.0.1[127.0.0.1]) - [0] ./proftpd [0x809b1e1] golem.castaglia.org (127.0.0.1[127.0.0.1]) - [1] ./proftpd(call_module+0x53) [0x8072c63] golem.castaglia.org (127.0.0.1[127.0.0.1]) - [2] ./proftpd(strftime+0x14cf) [0x8051bef] golem.castaglia.org (127.0.0.1[127.0.0.1]) - [3] ./proftpd(pr_cmd_dispatch+0x167) [0x8051f2f] golem.castaglia.org (127.0.0.1[127.0.0.1]) - [4] ./proftpd(strftime+0x1fd3) [0x80526f3] golem.castaglia.org (127.0.0.1[127.0.0.1]) - [5] ./proftpd [0x8053e12] golem.castaglia.org (127.0.0.1[127.0.0.1]) - [6] ./proftpd [0x805484d] golem.castaglia.org (127.0.0.1[127.0.0.1]) - [7] ./proftpd [0x8057975] golem.castaglia.org (127.0.0.1[127.0.0.1]) - [8] ./proftpd(main+0x9d1) [0x8058625] golem.castaglia.org (127.0.0.1[127.0.0.1]) - [9] /lib/i686/libc.so.6(__libc_start_main+0x93) [0x40076507] golem.castaglia.org (127.0.0.1[127.0.0.1]) - [10] ./proftpd(strcpy+0x31) [0x8051001] golem.castaglia.org (127.0.0.1[127.0.0.1]) - -----END STACK TRACE-----These stack symbols are generated automatically by glibc, and may or may not contain the function names.
The key here for tracking down the location of the segfault is that
$ addrline -e ./proftpd 0x809b1e1In this example, I saw: $ addr2line -e ./proftpd 0x809b1e1 /home/tj/proftpd/cvs/proftpd/modules/mod_auth.c:1723which is the location of test code added to trigger the segfault.
This feature is specific to glibc systems, so keep that in mind. Other things
to mention about this feature: it disables the changing of the process title
that
Common Problems
Another common question involves use of ProFTPD's
Once you have the debug output and various other information, and are still
in need of help, search the FAQ, Userguide, and mailing list archives for
material related to the problem. If you're unable to find anything helpful
in these sources, post your question to the appropriate mailing list. Be
sure to include the version used, your The following document describes how to ask good questions that are likely to be answered: http://www.catb.org/~esr/faqs/smart-questions.html
© Copyright 2017 The ProFTPD Project All Rights Reserved |
:: Command execute :: | |
--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0038 ]-- |