FTP response codes - iis-6

I am troubleshooting Microsoft's FTP server (IIS 6.0) at a client site. In the FTP log, there's a few response codes that I'd like to know the meaning of.
For instance, in the line:
12:01:15 10.4.152.122 [194326]created x.jpg 550 1450
I'd like to know the meaning of 1450. There's other ones as well, like 550 2, and 550 32.
Anyone know of a site or reference that has the meaning of these sub-codes (not sure what the correct term is)?

The 450 / 550 values are both from RFC 959.
As 450 and 550 are both FTP errors, the second values might correspond to Windows error codes. The page here is consistent with that, with values 2, 32, and 1450 all relating to file I/O errors.
2 = ERROR_FILE_NOT_FOUND
The system cannot find the file specified.
32 = ERROR_SHARING_VIOLATION
The process cannot access the file because it is being used by another
process.
1450 = ERROR_NO_SYSTEM_RESOURCES
- Insufficient system resources exist to complete the requested
service.

According to this, 550 is:
Requested action not taken.
File unavailable (e.g., file not found, no access).

Related

Error creating Email for addon domain Cpanel

hey guys I need your godly advice I have set up my Webhosting from a NON-cpanel server to a cpanel server and am trying to create an email account for one of my addon domains EG main domain is EG main.com addon new_main.com so I try and create for my addon in cpanel like email#new_main.com and I am met with this error. please note I used to years ago be on cpanel so it may have brought files from the old install over to this new install which is possibly causing the issue but I'm lost trying to figure out what's wrong
fingers crossed you guys can see the error I have been looking at this for a day now and I still can't seem to figure out, I have looked for the files mentioned and some are there 1 of them isn't cant remember which and I don't know how to remedy the situation thanks in advance
The error looks like this
Error: The operation “POST” “/cpsess8393558881/execute/Email/add_pop” failed with a “The system could not create the calendar “Calendar” for “contact#combatprosports.co.uk”: Cpanel::Exception::Database::Error/(XID rg8xc9) The system received an error from “SQLite”: SQLITE_READONLY (attempt to write a readonly database) at /usr/local/cpanel/Cpanel/DBI.pm line 200. Cpanel::DBI::_create_exception(Cpanel::DBI::db=HASH(0x2b39d20), "DBD::SQLite::db do failed: attempt to write a readonly database", undef) called at /usr/local/cpanel/Cpanel/DBI.pm line 188 Cpanel::DBI::_error_handler("DBD::SQLite::db do failed: attempt to write a readonly database", Cpanel::DBI::db=HASH(0x2b39d20), undef) called at /usr/local/cpanel/Cpanel/DAV/Backend/DB/Horde.pm line 79 eval {...} called at /usr/local/cpanel/Cpanel/DAV/Backend/DB/Horde.pm line 79 Cpanel::DAV::Backend::DB::Horde::do(Cpanel::DBI::db=HASH(0x2b39d20), " INSERT INTO kronolith_shares\x{a} (share_name, share_owner"..., "14a47cf5-a4b7-b2f9-5d71-7e972f886226", "contact\#combatprosports.co.uk", "Calendar", "This is your personal calendar.", "#641f76") called at /usr/local/cpanel/Cpanel/DAV/Backend/HordeCalendar.pm line 82 Cpanel::DAV::Backend::HordeCalendar::create_calendar(Cpanel::DAV::Principal=HASH(0x281d938), "Calendar", "This is your personal calendar.") called at /usr/local/cpanel/Cpanel/DAV/Calendars.pm line 59 Cpanel::DAV::Calendars::create_calendar(Cpanel::DAV::Principal=HASH(0x281d938), "Calendar", "This is your personal calendar.") called at /usr/local/cpanel/Cpanel/DAV/Defaults.pm line 55 Cpanel::DAV::Defaults::create_calendar(Cpanel::DAV::Principal=HASH(0x281d938)) called at /usr/local/cpanel/Cpanel/DAV/Defaults.pm line 142 Cpanel::DAV::Defaults::create_calendars_and_address_books("contact\#combatprosports.co.uk") called at /usr/local/cpanel/Cpanel/API/Email.pm line 1478 Cpanel::API::Email::add_pop(Cpanel::Args=HASH(0x2451f80), Cpanel::Result=HASH(0x244a6d8)) called at /usr/local/cpanel/Cpanel/API.pm line 366 eval {...} called at /usr/local/cpanel/Cpanel/API.pm line 368 Cpanel::API::_run_module_function(Cpanel::Args=HASH(0x2451f80), Cpanel::Result=HASH(0x244a6d8), "Email", "add_pop") called at /usr/local/cpanel/Cpanel/API.pm line 243 Cpanel::API::execute("Email", "add_pop", HASH(0x244a588)) called at /usr/local/cpanel/Cpanel/API.pm line 651 Cpanel::API::run_api_mode(HASH(0x244a588)) called at uapi.pl line 307 main::script() called at uapi.pl line 139 ” error.```
The error message contains the following:
SQLITE_READONLY (attempt to write a readonly database)
This is not normal and suggests that there is a problem with the server's disks. You should reach out to your hosting provider, or if you are the owner of the server, a systems administrator that has the skills, training, and experience required to check the status of the disks, and/or determine why the SQLITE database is readonly.

Why does S3 sometimes return HTTP 206 when the whole file has been downloaded?

I've had my S3 bucket logging into another bucket using Server Access Log Format for a while. For the Operation: REST.GET.OBJECT sometimes an HTTP Status: 206 Partial Content is returned because the whole file wasn't downloaded. But I can see in the logs that sometimes when HTTP Status: 206 is returned the whole file was downloaded. I've removed some fields to make it simpler:
Operation: REST.GET.OBJECT
Request-URI: "GET [File] HTTP/1.1"
HTTP Status: 206
Error Code: -
Bytes Sent: 76431360
Object Size: 76431360
Total Time: 16276
Turn-Around Time: 190
What happened here? If the Bytes Sent are the same as the Object Size then how can the source report this as a Partial Content?
The 206 status has nothing to do with incomplete file transfer. The server determines what status code to send before it starts sending the response body, so it would have to predict future to know whether it will be able to send the whole file.
Instead, what 206 status code actually means is that the following three things happened at once:
the client sent Range header in its request;
the server decided to honour it and send exactly the bytes requested, not the whole file;
the server was actually able to do so — the range was valid and satisfiable.
In this case, the standard requires the server to reply with the 206 status code, not 200, regardless whether the range happen to cover exactly the whole file or only a part of it.

X-Cart - SQL error notification (Error code : 1030)

I am working on xcart website for my company. Right now, I always get the error messages from my website http://mothersenvogue.com.kh/ as below:
[24-May-2015 08:50:51] (shop: 24-May-2015 15:50:51) SQL error:
Site : https://mothersenvogue.com.kh
Remote IP : 176.9.29.209
Logged as :
SQL query : SHOW FIELDS FROM xcart_session_history
Error code : 103
Description : Got error 28 from storage engine
Request URI: /secure_login.php?xid=025530538a738ddc86617a9aa81bc990
Backtrace:
/home/www/mothersenvogue.com.kh/include/func/func.db.php:189
/home/www/mothersenvogue.com.kh/include/func/func.db.php:115
/home/www/mothersenvogue.com.kh/include/func/func.db.php:384
/home/www/mothersenvogue.com.kh/include/func/func.db.php:630
/home/www/mothersenvogue.com.kh/include/func/func.db.php:458
/home/www/mothersenvogue.com.kh/include/sessions.php:161
/home/www/mothersenvogue.com.kh/init.php:524
/home/www/mothersenvogue.com.kh/preauth.php:51
/home/www/mothersenvogue.com.kh/auth.php:45
/home/www/mothersenvogue.com.kh/secure_login.php:37
-------------------------------------------------
Many error messages are from func.db.php, init.php, preauth.php, auth.php all at the same line number, and on the same SQL Query "SHOW" statement.
I tried to check all the above files at their given line number but I could not find anything wrong.
Pleasse kindly help advise me what is wrong with it? is it something wrong inside these files as I got many error messages sent to me by email with the similar content like above.
I was refered to here from my previous question in xcart forum, and here is my question there:
https://bt.x-cart.com/view.php?id=44717
Many thanks.
In most cases the file storage (the drive where your files are located on the hosting server, where you checked the free space) is physically located on a different virtual / physical server / drive. Most hosting companies use an optimized dedicated servers for MySQL.
Thus you see enough space in your account, but MySQL still reports that there is no space left on the drive (where MySQL server is currently running).
Thus the best way is to contact the hosting provider and find out what's the situation with the disk space on that very machine, where MySQL is running.

Addressing ECUs directly using ELM 327 dongle and ISO 9141

I have a VW Golf 4, which is quite old and talks KWP 2000 (ISO 9141) on its CAN bus. I use a dongle powered by ELM 327, connected to the OBD-2 port of the car.
I am trying to send messages individually to each ECU. I tried to change the header of the messages:
AT SH 48 XX F1 (I hoped XX would be the ECU ID; 48 is the flag for "use physical addressing"). Any command I issue (e.g. tried 3E for "tester present") returns NO DATA (I disabled automatic timeouts and set the timeout to maximum value).
Is there a way to send messages directly to the ECU? I am not interested in the set of data provided via OBD-2, neither do I want to re-flash the ECUs. At the moment I just try to find out which ECUs are available on the bus.
Thanks!
VW works on Transport Protocol TP 2.0, hence you need to initialize with 0x200 header.
https://jazdw.net/tp20
See above link for more info.

GWT-RPC, Apache, Tomcat server data size checking

Following up on this GWT-RPC question (and answer #1) re. field size checking, I would like to know the right way to check pre-deserialization for max data size sent to server, something like if request data size > X then abort the request. Valuing simplicity and based on answer on aforementioned question/answer, I am inclined to believe checking for max overall request size would suffice, finer grained checks (i.e., field level checks) could be deferred to post-deserialization, but I am open to any best-practice suggestion.
Tech stack of interest: GWT-RPC client-server communication with Apache-Tomcat front-end web-server.
I suppose a first step would be to globally limit the size of any request (LimitRequestBody in httpd.conf or/and others?).
Are there finer-grained checks like something that can be set per RPC request? If so where, how? How much security value do finer grain checks bring over one global setting?
To frame the question more specifically with an example, let's suppose we have the two following RPC request signatures on the same servlet:
public void rpc1(A a, B b) throws MyException;
public void rpc2(C c, D d) throws MyException;
Suppose I approximately know the following max sizes:
a: 10 kB
b: 40 kB
c: 1 M B
d: 1 kB
Then I expect the following max sizes:
rpc1: 50 kB
rpc2: 1 MB
In the context of this example, my questions are:
Where/how to configure the max size of any request -- i.e., 1 MB in my above example? I believe it is LimitRequestBody in httpd.conf but not 100% sure whether it is the only parameter for this purpose.
If possible, where/how to configure max size per servlet -- i.e., max size of any rpc in my servlet is 1 MB?
If possible, where/how to configure/check max size per rpc request -- i.e., max rpc1 size is 50 kB and max rpc2 size is 1 MB?
If possible, where/how to configure/check max size per rpc request argument -- i.e., a is 10 kB, b is 40 kB, c is 1 MB, and d is 1 kB. I suspect it makes practical sense to do post-deserialization, doesn't it?
For practical purposes based of cost/benefit, what level of pre-deserialization checking is generally recommended -- 1. global, 2. servlet, 3. rpc, 4. object-argument? Stated differently, what is roughly the cost-complexity on one hand and the added value on the other hand of each of the above pre-deserialization level checks?
Thanks much in advance.
Based on what I have learned since I asked the question, my own answer and strategy until someone can show me better is:
First line of defense and check is Apache's LimitRequestBody set in httpd.conf. It is the overall max for all rpc calls across all servlets.
Second line of defense is servlet pre-deserialization by overriding GWT AbstractRemoteServiceServlet.readContent. For instance, one could do it as shown further below I suppose. This was the heart of what I was fishing for in this question.
Then one can further check each rpc call argument post-deserialization. One could conveniently use the JSR 303 validation both on the server and client side -- see references StackOverflow and gwt r.e. client side.
Example on how to override AbstractRemoteServiceServlet.readContent:
#Override
protected String readContent(HttpServletRequest request) throws ServletException, IOException
{
final int contentLength = request.getContentLength();
// _maxRequestSize should be large enough to be applicable to all rpc calls within this servlet.
if (contentLength > _maxRequestSize)
throw new IOException("Request too large");
final String requestPayload = super.readContent(request);
return requestPayload;
}
See this question in case the max request size if > 2GB.
From a security perspective, this strategy seems quite reasonable to me to control the size of data users send to server.