Debian stableFreeradius 1.0.2 + IOdbc + FreeTDS + MSSQL Segmentation fault.

Angelo Compagnucci emailvarie at davide.it
Mon Oct 9 17:43:45 CEST 2006


Hi to all!

I've a GREAT problem ...

Freeradius exits abnormally with a segmentation fault error when user 
logoff ...

This is the log:

...
Processing the preacct section of radiusd.conf
modcall: entering group preacct for request 2
  modcall[preacct]: module "preprocess" returns noop for request 2
rlm_acct_unique: Hashing 'NAS-Port = 45,Client-IP-Address = 
192.168.0.2,NAS-IP-Address = 192.168.0.2,Acct-Session-Id 
= "81700000",User-Name = "tester6"'
rlm_acct_unique: Acct-Unique-Session-ID = "14ec0af158f89db2".
  modcall[preacct]: module "acct_unique" returns ok for request 2
modcall: leaving group preacct (returns ok) for request 2
  Processing the accounting section of radiusd.conf
modcall: entering group accounting for request 2
radius_xlat:  '/var/log/radius/radutmp'
radius_xlat:  'tester6'
  modcall[accounting]: module "radutmp" returns ok for request 2
radius_xlat:  'tester6'
rlm_sql (sql): sql_set_user escaped user --> 'tester6'
radius_xlat:  'UPDATE radacct SET AcctStopTime = '2006-10-09 16:28:21', 
AcctSessionTime = '5', AcctInputOctets = '96', AcctOutputOctets = '200', 
AcctTerminateCause = 'User-Request', AcctStopDelay = '0', ConnectInfo_stop 
= '' WHERE AcctSessionId = '81700000' AND UserName = 'tester6' AND 
NASIPAddress = '192.168.0.2' AND AcctStopTime = 0'
rlm_sql (sql): Reserving sql socket id: 1
Segmentation fault

---------------

This is the strace:

time(NULL)                              = 1160408543
getsockname(4, {sa_family=AF_INET, sin_port=htons(1813), 
sin_addr=inet_addr("0.0.0.0")}, [23053941335916560]) = 0
recvmsg(4, {msg_name(16)={sa_family=AF_INET, sin_port=htons(1035), 
sin_addr=inet_addr("192.168.0.2")}, msg_iov(1)=[{"\4
[\0\302\362n\337zq`9\211\335\320@^\n\307\360\214\6\6"..., 4096}], 
msg_controllen=32, {cmsg_len=28, cmsg_level=SOL_IP, cmsg_type=, ...}, 
msg_flags=0}, 0) = 194
write(1, "rad_recv: Accounting-Request pac"..., 82rad_recv: Accounting-Request 
packet from host 192.168.0.2:1035, id=91, length=194
) = 82
time(NULL)                              = 1160408543
write(1, "\tService-Type = Framed-User\n", 28   Service-Type = Framed-User
) = 28
write(1, "\tFramed-Protocol = PPP\n", 23        Framed-Protocol = PPP
) = 23
write(1, "\tNAS-Port = 47\n", 15        NAS-Port = 47
)       = 15
write(1, "\tNAS-Port-Type = Ethernet\n", 26     NAS-Port-Type = Ethernet
) = 26
write(1, "\tUser-Name = \"tester6\"\n", 23      User-Name = "tester6"
) = 23
write(1, "\tCalling-Station-Id = \"00:02:3F:"..., 42    Calling-Station-Id 
= "00:02:3F:17:65:34"
) = 42
write(1, "\tCalled-Station-Id = \"service1\"\n", 32     Called-Station-Id 
= "service1"
) = 32
write(1, "\tNAS-Port-Id = \"ether1\"\n", 24     NAS-Port-Id = "ether1"
) = 24
write(1, "\tAcct-Session-Id = \"81800001\"\n", 30       Acct-Session-Id 
= "81800001"
) = 30
write(1, "\tFramed-IP-Address = 10.0.102.17"..., 34     Framed-IP-Address = 
10.0.102.175
) = 34
write(1, "\tFramed-IP-Netmask = 255.255.255"..., 35     Framed-IP-Netmask = 
255.255.255.0
) = 35
write(1, "\tAcct-Authentic = RADIUS\n", 25      Acct-Authentic = RADIUS
) = 25
write(1, "\tAcct-Session-Time = 5\n", 23        Acct-Session-Time = 5
) = 23
write(1, "\tAcct-Input-Octets = 96\n", 24       Acct-Input-Octets = 96
) = 24
write(1, "\tAcct-Input-Gigawords = 0\n", 26     Acct-Input-Gigawords = 0
) = 26
write(1, "\tAcct-Input-Packets = 9\n", 24       Acct-Input-Packets = 9
) = 24
write(1, "\tAcct-Output-Octets = 200\n", 26     Acct-Output-Octets = 200
) = 26
write(1, "\tAcct-Output-Gigawords = 0\n", 27    Acct-Output-Gigawords = 0
) = 27
write(1, "\tAcct-Output-Packets = 11\n", 26     Acct-Output-Packets = 11
) = 26
write(1, "\tAcct-Status-Type = Stop\n", 25      Acct-Status-Type = Stop
) = 25
write(1, "\tAcct-Terminate-Cause = User-Req"..., 37     Acct-Terminate-Cause = 
User-Request
) = 37
write(1, "\tNAS-Identifier = \"MikroTik\"\n", 29        NAS-Identifier 
= "MikroTik"
) = 29
write(1, "\tNAS-IP-Address = 192.168.0.2\n", 30 NAS-IP-Address = 192.168.0.2
) = 30
write(1, "\tAcct-Delay-Time = 0\n", 21  Acct-Delay-Time = 0
) = 21
time(NULL)                              = 1160408543
write(1, "  Processing the preacct section"..., 49  Processing the preacct 
section of radiusd.conf
) = 49
time(NULL)                              = 1160408543
write(1, "modcall: entering group preacct "..., 46modcall: entering group 
preacct for request 2
) = 46
time(NULL)                              = 1160408543
write(1, "  modcall[preacct]: module \"prep"..., 67  modcall[preacct]: 
module "preprocess" returns noop for request 2
) = 67
time(NULL)                              = 1160408543
write(1, "rlm_acct_unique: Hashing \'NAS-Po"..., 153rlm_acct_unique: 
Hashing 'NAS-Port = 47,Client-IP-Address = 192.168.0.2,NAS-IP-Address = 
192.168.0.2,Acct-Session-Id = "81800001",User-Name = "tester6"'
) = 153
time(NULL)                              = 1160408543
write(1, "rlm_acct_unique: Acct-Unique-Ses"..., 62rlm_acct_unique: 
Acct-Unique-Session-ID = "8132fc6445e0c224".
) = 62
time(NULL)                              = 1160408543
write(1, "  modcall[preacct]: module \"acct"..., 66  modcall[preacct]: 
module "acct_unique" returns ok for request 2
) = 66
time(NULL)                              = 1160408543
write(1, "modcall: leaving group preacct ("..., 58modcall: leaving group 
preacct (returns ok) for request 2
) = 58
time(NULL)                              = 1160408543
write(1, "  Processing the accounting sect"..., 52  Processing the accounting 
section of radiusd.conf
) = 52
time(NULL)                              = 1160408543
write(1, "modcall: entering group accounti"..., 49modcall: entering group 
accounting for request 2
) = 49
time([1160408543])                      = 1160408543
time(NULL)                              = 1160408543
write(1, "radius_xlat:  \'/var/log/radius/r"..., 
40radius_xlat:  '/var/log/radius/radutmp'
) = 40
time(NULL)                              = 1160408543
write(1, "radius_xlat:  \'tester6\'\n", 24radius_xlat:  'tester6'
) = 24
open("/var/log/radius/radutmp", O_RDWR|O_CREAT, 0600) = 11
fcntl(11, F_SETLKW, {type=F_WRLCK, whence=SEEK_CUR, start=0, len=112}) = 0
lseek(11, 6944, SEEK_SET)               = 6944
read(11, "tester6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 112) = 
112
lseek(11, -112, SEEK_CUR)               = 6944
write(11, "tester6\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 112) = 
112
close(11)                               = 0
time(NULL)                              = 1160408543
write(1, "  modcall[accounting]: module \"r"..., 65  modcall[accounting]: 
module "radutmp" returns ok for request 2
) = 65
time(NULL)                              = 1160408543
write(1, "radius_xlat:  \'tester6\'\n", 24radius_xlat:  'tester6'
) = 24
time(NULL)                              = 1160408543
write(1, "rlm_sql (sql): sql_set_user esca"..., 55rlm_sql (sql): sql_set_user 
escaped user --> 'tester6'
) = 55
stat("/etc/localtime", {st_mode=S_IFREG|0644, st_size=951, ...}) = 0
time(NULL)                              = 1160408543
write(1, "radius_xlat:  \'UPDATE radacct SE"..., 338radius_xlat:  'UPDATE 
radacct SET AcctStopTime = '2006-10-09 17:42:23', AcctSessionTime = '5', 
AcctInputOctets = '96', AcctOutputOctets = '200', AcctTerminateCause 
= 'User-Request', AcctStopDelay = '0', ConnectInfo_stop = '' WHERE 
AcctSessionId = '81800001' AND UserName = 'tester6' AND NASIPAddress 
= '192.168.0.2' AND AcctStopTime = 0'
) = 338
time(NULL)                              = 1160408543
write(1, "rlm_sql (sql): Reserving sql soc"..., 42rlm_sql (sql): Reserving sql 
socket id: 1
) = 42
time(NULL)                              = 1160408543
select(7, NULL, [6], NULL, NULL)        = 1 (out [6])
sendto(6, "\1\1\1I\0\0\0\0UPDATE radacct SET AcctS"..., 329, MSG_NOSIGNAL, 
NULL, 0) = 329
time(NULL)                              = 1160408543
select(7, [6], NULL, NULL, NULL)        = 1 (in [6])
recvfrom(6, "\4\1\0\21\0007\1\0", 8, MSG_NOSIGNAL, NULL, NULL) = 8
time(NULL)                              = 1160408543
time(NULL)                              = 1160408543
select(7, [6], NULL, NULL, NULL)        = 1 (in [6])
recvfrom(6, "\375\20\0\305\0\1\0\0\0", 9, MSG_NOSIGNAL, NULL, NULL) = 9
time(NULL)                              = 1160408543
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
+++ killed by SIGSEGV +++
Process 3981 detached



More information about the Freeradius-Users mailing list