SMS Server Tools 3
 Menu
Basic information:
Additional information:
Support:
Get SMS Server Tools 3:
Additional Options

 Sponsored links

 Search
Custom Search

 Visitor locations
 
 SMS Server Tools 3 Community
Welcome, Guest. The forum is currently read-only, but will open soon. Thu Nov 21, 2024 17:59
SMSTools3 Community » Help and support Bottom

Conflict with .LOCK file in the spooler / Fatal error: Cannot move

Login and Post Reply

Page:  1

Author Post
Member
Registered:
Jul 2016
Location: Turkey
Operating system name and version: Ubuntu 10.10
Version of smsd: 3.1.10
Smsd installed from: package repository
Name and model of a modem / phone: Modem details are available at https://www.alibaba.com/product-detail/Alibaba-express-wholesale-bulk-sms-gsm_60073375060.html
Interface: USB



Daily total SMS number is around 2000. Huge number of the SMS's are dropped to SMSTools spool at 01:00 a.m. (around 1000-1300 files) I'm having this issue almost everyday if there is a huge queue. The time of crash is random. All I know is this crash happening while process of this huge queue.

Regarding to this topic (http://smstools3.kekekasvi.com/topic.php?id=557):
Is this problem solved in 3.1.15, should I upgrade or wait for 3.1.16?
Do I need to upgrade the OS?


« Last edit by RecNes on Wed Jul 27, 2016 08:41, 101 months ago. »
Member
Registered:
Jul 2016
Location: Turkey
Topic owner
Hello,

I installed Modem, New OS (Ubuntu server 16.04.1) and most recent SMSTools from repo (3.1.15-1.2) and still getting:



Is it possible to, I have conflict problem because of the all modems processing files in one directory?
Should I set separate directories for each modem and let them read files from it's own folder?

Here is my Configuration:

#
# /etc/smsd.conf
#
# Description: Main configuration file for the smsd
#

devices = MODEM* 0-3
outgoing = /var/spool/sms/outgoing
checked = /var/spool/sms/checked
incoming = /var/spool/sms/incoming
failed = /var/spool/sms/failed
sent = /var/spool/sms/sent
stats = /var/log/smstools/smsd_stats
logfile = /var/log/smstools/smsd.log
infofile = /var/run/smstools/smsd.working
pidfile = /var/run/smstools/smsd.pid
loglevel = debug
delaytime = 3
errorsleeptime = 10
blockafter = 5
blocktime = 600
hangup_incoming_call = yes
voicecall_hangup_ath = yes
stats_interval = 3600
receive_before_send = yes
autosplit = 3

[queues]
MODEM0 = /var/spool/sms/MODEM0
MODEM1 = /var/spool/sms/MODEM1
MODEM2 = /var/spool/sms/MODEM2
MODEM3 = /var/spool/sms/MODEM3
ALL = /var/spool/sms/ALL

[provider]
MODEM0 = 49
MODEM1 = 49
MODEM2 = 49
MODEM3 = 49
ALL = 49

[MODEM0]
queues = MODEM0, ALL
device = /dev/ttyUSB0
baudrate = 115200
pre_init = no
init = ATE0
pin = ignore
rtscts = no
cs_convert = yes
incoming = yes
sending_disabled = no
detect_unexpected_input = yes

[MODEM1]
queues = MODEM1, ALL
device = /dev/ttyUSB1
baudrate = 115200
pre_init = no
init = ATE0
pin = ignore
rtscts = no
cs_convert = yes
incoming = yes
sending_disabled = no
detect_unexpected_input = yes

[MODEM2]
queues = MODEM2, ALL
device = /dev/ttyUSB2
baudrate = 115200
pre_init = no
pin = ignore
init = ATE0
rtscts = no
cs_convert = yes
incoming = yes
sending_disabled = no
detect_unexpected_input = yes

[MODEM3]
queues = MODEM3, ALL
device = /dev/ttyUSB3
baudrate = 115200
pre_init = no
init = ATE0
pin = ignore
rtscts = no
cs_convert = yes
incoming = yes
sending_disabled = no
detect_unexpected_input = yes
 
'smsdconf' Syntax Highlight powered by GeSHi


Member
Registered:
Jul 2016
Location: Turkey
Topic owner
OK, I still can not get any answer but the problem still appearing with different form:

I made changes in the configuration. I disabled other modem instances except  MODEM0  for  ALL  queue.
I lost the "Conflict with .LOCK file" error but "smsd: Fatal error: Cannot move..." error still remaining. Here is my configuration and the last 50 lines of LOG:


#
# /etc/smsd.conf
#
# Description: Main configuration file for the smsd
#

#devices = MODEM* 0-3
devices = MODEM0
outgoing = /var/spool/sms/outgoing
checked = /var/spool/sms/checked
incoming = /var/spool/sms/incoming
failed = /var/spool/sms/failed
sent = /var/spool/sms/sent
stats = /var/log/smstools/smsd_stats
logfile = /var/log/smstools/smsd.log
infofile = /var/run/smstools/smsd.working
pidfile = /var/run/smstools/smsd.pid
loglevel = info
delaytime = 3
errorsleeptime = 10
blockafter = 5
blocktime = 600
hangup_incoming_call = yes
voicecall_hangup_ath = yes
stats_interval = 3600
receive_before_send = yes
autosplit = 3

[queues]
MODEM0 = /var/spool/sms/MODEM0
#MODEM1 = /var/spool/sms/MODEM1
#MODEM2 = /var/spool/sms/MODEM2
#MODEM3 = /var/spool/sms/MODEM3
ALL = /var/spool/sms/ALL

[provider]
MODEM0 = 49
#MODEM1 = 49
#MODEM2 = 49
#MODEM3 = 49
ALL = 49

[MODEM0]
queues = MODEM0, ALL
device = /dev/ttyUSB0
baudrate = 115200
pre_init = no
init = ATE0
pin = ignore
rtscts = no
cs_convert = yes
incoming = yes
sending_disabled = no
detect_unexpected_input = yes

[MODEM1]
queues = MODEM1, ALL
device = /dev/ttyUSB1
baudrate = 115200
pre_init = no
init = ATE0
pin = ignore
rtscts = no
cs_convert = yes
incoming = yes
sending_disabled = no
detect_unexpected_input = yes

[MODEM2]
queues = MODEM2, ALL
device = /dev/ttyUSB2
baudrate = 115200
pre_init = no
pin = ignore
init = ATE0
rtscts = no
cs_convert = yes
incoming = yes
sending_disabled = no
detect_unexpected_input = yes

[MODEM3]
queues = MODEM3, ALL
device = /dev/ttyUSB3
baudrate = 115200
pre_init = no
init = ATE0
pin = ignore
rtscts = no
cs_convert = yes
incoming = yes
sending_disabled = no
detect_unexpected_input = yes
 
'smsdconf' Syntax Highlight powered by GeSHi



« Last edit by keke on Wed Aug 31, 2016 18:54, 100 months ago. »
Member
Registered:
Jul 2016
Location: Turkey
Topic owner
I think the main process (one of the behaves like a queue router) is acting fast before my SMS File creator script finished his job with the file.
I'm guessing, while my script create and begin to write to file main SMSD script is trying to move file from outgoing to modem queue before my script closed and left the file alone.
Is there a prevention mechanism available for this behavior?

Administrator
Registered:
May 2009
Location: Jyväskylä, Finland
You could create a file with the extension ".LOCK". Smsd skips those files. After the file is complete and closed, rename the .LOCK extension away.

Administrator
Registered:
May 2009
Location: Jyväskylä, Finland
Also make sure that your script does not create a filename which was used right before, or it does not create the same file twice.

If a file was spooled, and some modem is currently sending it, the file is locked in the queue. If at the same time a file with the same name is going to be spooled again, it fails because of locking.

There is a global setting keep_filename = no available, it creates an unique name each time when a file is moved between directories. But first ensure that your feeding script is working properly.

Member
Registered:
Jul 2016
Location: Turkey
Topic owner
Hello Keke,

I did not made the changes about .txt .LOCK file extension in my script yet.
But it seems the "Conflict with .LOCK" file issue has returned.

I'm still using one queue for one modem logic (The last configuration is still in use) But this morning I got that error again.

I'm still have no idea why? I thought if I separate the queues that could solve the problem, but it didn't.

Here is the smsd and trouble logs:




I am pretty sure about file names are distinct. Because we are using both timestamp and our own file counter within filename.
Also I have to say; the our script is creating the SMS files with ".txt" extension in separate server and than uploaded to server via ftp where smstools running. May be this information leads us to answer.


« Last edit by RecNes on Wed Aug 31, 2016 07:00, 100 months ago. »
Member
Registered:
Jul 2016
Location: Turkey
Topic owner
We made the modifications in our script.

Now I enabled other modems with it's own queue.
Our SMS feeder script is creating each SMS file with different queue sequentially and .LOCK extension.
Then upload each file to outgoing folder of the SMS server via FTP and then renamed to .txt right after 1 second when upload finished.

We will see, if I get the same error again.


« Last edit by RecNes on Wed Aug 31, 2016 09:43, 100 months ago. »
Member
Registered:
Jul 2016
Location: Turkey
Topic owner
It's happened again.

Ok, Let's see latest status:

Operating system name and version: Ubuntu 16.04.1 / Kernel version: Linux 4.4.0-36-generic #55-Ubuntu SMP x86_64 x86_64 x86_64 GNU/Linux
Version of smsd: 3.1.15-1.2
Smsd installed from: package repository
Name and model of a modem / phone: Future Technology Devices International, Ltd FT4232H Quad HS USB-UART/FIFO IC (with sierra wavecom Q24Plus modules)
Interface: USB

Our SMS feeder script is running on the different server.
The feeder script creates SMS text files with .LOCK extension in server where feeder script is running.
When file is created once SMS Feeder script is upload the file to /var/spor/sms/outgoing/ folder of the SMS server via FTP
When upload is finished, SMS feeder script waits for 1 second and rename the uploaded file .LOCK file extension to .txt
And then, smsd process moves the file to it's final destination according to queue written inside the file.

The final configuration is like this:
#
# /etc/smsd.conf
#
# Description: Main configuration file for the smsd
#

devices = MODEM* 0-3
outgoing = /var/spool/sms/outgoing
checked = /var/spool/sms/checked
incoming = /var/spool/sms/incoming
failed = /var/spool/sms/failed
sent = /var/spool/sms/sent
stats = /var/log/smstools/smsd_stats
logfile = /var/log/smstools/smsd.log
infofile = /var/run/smstools/smsd.working
pidfile = /var/run/smstools/smsd.pid
# debug, info, notice, warning, error, critical
loglevel = notice
logtime_us = yes
smart_logging = yes
delaytime_mainprocess = 3
delaytime = 1
errorsleeptime = 10
blockafter = 5
blocktime = 600
hangup_incoming_call = yes
voicecall_hangup_ath = yes
stats_interval = 3600
receive_before_send = yes
autosplit = 3

[queues]
MODEM0 = /var/spool/sms/MODEM0
MODEM1 = /var/spool/sms/MODEM1
MODEM2 = /var/spool/sms/MODEM2
MODEM3 = /var/spool/sms/MODEM3
OTHER = /var/spool/sms/OTHER

[provider]
MODEM0 = 49
MODEM1 = 49
MODEM2 = 49
MODEM3 = 49
OTHER = 49

[MODEM0]
device = /dev/serial/by-id/usb-FTDI_Quad_RS232-HS-if00-port0
queues = OTHER, MODEM0
baudrate = 115200
pre_init = no
mode = new
init = ATE0
pin = ignore
check_network = no
rtscts = no
cs_convert = yes
incoming = yes
sending_disabled = no
detect_unexpected_input = yes

[MODEM1]
device = /dev/serial/by-id/usb-FTDI_Quad_RS232-HS-if01-port0
queues = MODEM1
baudrate = 115200
pre_init = no
mode = new
init = ATE0
pin = ignore
check_network = no
rtscts = no
cs_convert = yes
incoming = yes
sending_disabled = no
detect_unexpected_input = yes

[MODEM2]
device = /dev/serial/by-id/usb-FTDI_Quad_RS232-HS-if02-port0
queues = MODEM2
baudrate = 115200
pre_init = no
mode = new
check_network = no
pin = ignore
init = ATE0
rtscts = no
cs_convert = yes
incoming = yes
sending_disabled = no
detect_unexpected_input = yes

[MODEM3]
device = /dev/serial/by-id/usb-FTDI_Quad_RS232-HS-if03-port0
queues = MODEM3
baudrate = 115200
pre_init = no
mode = new
init = ATE0
pin = ignore
check_network = no
rtscts = no
cs_convert = yes
incoming = yes
sending_disabled = no
detect_unexpected_input = yes
 
'smsdconf' Syntax Highlight powered by GeSHi


Here is the smsd.log:
Hidden private text.



And the smsd_trouble.log:
Hidden private text.



The file involved to crash has appeared in two different folder:



« Last edit by RecNes on Thu Sep 01, 2016 06:46, 100 months ago. »

Login and Post Reply

Page:  1

SMSTools3 Community » Help and support Top

 
Time in this board is UTC.  

Privacy Policy   SMS Server Tools 3 Copyright © Keijo Kasvi.