View Issue Details

IDProjectCategoryView StatusLast Update
0002649SOGoWeb Calendarpublic2014-12-30 21:00
Reporterbuzzdee Assigned Toludovic  
PriorityhighSeveritycrashReproducibilityalways
Status resolvedResolutionsuspended 
Platformamd64OSOpenBSDOS Version5.2
Product Version2.2.1 
Summary0002649: loading a Microsoft Office 365 Calendar on logon exception
Description

I've subscribed to a O365 calendar with SOGo, and on logon, its trying to load it, but then running into an exception:

Mar 10 18:32:15 sogod [21809]: <0x62053210[SOGoWebAppointmentFolder]:4B0F-527E6580-5-6B8B4580> Load web calendar https://outlook.office365.com/owa/calendar/1c4ebcd1f5084aa1b56729ff54764d0e@mycompany.com/3e556fcf139447818563570cb8e2297a10446762927772424072/S-1-8-4133667055-1239243485-572647827-1663490780/reachcalendar.ics (200)
[Switching to process 21809, thread 0x988651d4800]

Breakpoint 1, -[NSException raise] (self=0x988628b5750, _cmd=0x9886f71cdb0) at NSException.m:961
961 if (_reserved == 0)
Current language: auto; currently minimal
(gdb) bt
#0 -[NSException raise] (self=0x988628b5750, _cmd=0x9886f71cdb0) at NSException.m:961
0000001 0x000009886f23ba79 in +[NSException raise:format:arguments:] (self=0x9886f71ca00, _cmd=0x9886f71cd80,
name=0x9886f71c420, format=0x9886f6e4280, argList=0x7f7ffffcdf30) at NSException.m:854
0000002 0x000009886f23b9af in +[NSException raise:format:] (self=0x9886f71ca00, _cmd=0x9886f6e6860, name=0x9886f71c420,
format=0x9886f6e4280) at NSException.m:840
0000003 0x000009886f1995a9 in -[GSMutableString substringWithRange:] (self=0x988628b5d50, _cmd=0x98864fb3660, aRange=
{location = 0, length = 2}) at GSString.m:5211
0000004 0x0000098864d93ea6 in -[iCalTimeZonePeriod _secondsOfOffset:] (self=0x9885f491c10, _cmd=0x98864fb37f0,
offsetName=0x98864fb32e0) at iCalTimeZonePeriod.m:83
0000005 0x0000098864d947b3 in -[iCalTimeZonePeriod secondsOffsetFromGMT] (self=0x9885f491c10, _cmd=0x988734f45f0)
at iCalTimeZonePeriod.m:202
0000006 0x00000988732ca49a in -[SOGoAppointmentFolder importCalendar:] (self=0x98862053210, _cmd=0x988734f8070,
calendar=0x9886ae3ed90) at SOGoAppointmentFolder.m:3048
0000007 0x00000988732cdbe6 in -[SOGoWebAppointmentFolder loadWebCalendar] (self=0x98862053210, _cmd=0x988734fa180)
at SOGoWebAppointmentFolder.m:187
0000008 0x00000988732d0a2d in -[SOGoAppointmentFolders reloadWebCalendars:] (self=0x9886ad7a410, _cmd=0x98874e66af0,
forceReload=0 '\0') at SOGoAppointmentFolders.m:594
0000009 0x0000098874c60397 in -[SOGoRootPage connectAction] (self=0x988672d8010, _cmd=0x9886536d750) at SOGoRootPage.m:253
0000010 0x000009886f29bd27 in -[NSObject performSelector:] (self=0x988672d8010, _cmd=0x9886257e5c0, aSelector=0x9886536d750)
at NSObject.m:2000
...

(gdb) frame 4
0000004 0x0000098864d93ea6 in -[iCalTimeZonePeriod _secondsOfOffset:] (self=0x9885f491c10, _cmd=0x98864fb37f0,
offsetName=0x98864fb32e0) at iCalTimeZonePeriod.m:83
83 seconds = 3600 [[offsetTo substringWithRange: cursor] intValue];
(gdb) list
78 cursor = NSMakeRange(1, 2);
79 }
80 else
81 cursor = NSMakeRange(0, 2);
82
83 seconds = 3600
[[offsetTo substringWithRange: cursor] intValue];
84 cursor.location += 2;
85 seconds += 60 [[offsetTo substringWithRange: cursor] intValue];
86 if (length == 6)
87 {
(gdb) print cursor
$1 = {location = 0, length = 2}
(gdb) print offsetTo
$2 = (class NSString
) 0x988628b5d50
(gdb) print offsetTo
$3 = {{isa = 0x9886f6e4f80}}
(gdb) po offsetTo
<object returns empty description>
(gdb) print self
$4 = (class iCalTimeZonePeriod
) 0x9885f491c10
(gdb) po self
<0x9885f491c10[iCalTimeZonePeriod]:DAYLIGHT
5 children: {
<0x988672e8dd0[iCalUTCOffset]:TZOFFSETFROM

<0x988672e95d0[iCalUTCOffset]:TZOFFSETTO

<0x988672e8090[CardElement]:TZNAME

<0x988672e8250[iCalDateTime]:DTSTART

<0x9885f491210[iCalRecurrenceRule]:RRULE

}>
(gdb) print iCalUTCOffsetQuit
(gdb) print offsetName
$5 = (class NSString *) 0x98864fb32e0
(gdb) po offsetName
tzoffsetto
(gdb) print length
$6 = 0
(gdb) print negative
$7 = 0 '\0'
(gdb) c
Continuing.
EXCEPTION: <NSException: 0x988628b5750> NAME:NSRangeException REASON:in substringWithRange:, range { 0, 2 } extends beyond size (0) INFO:(null)

TagsNo tags attached.

Activities

buzzdee

buzzdee

2014-03-10 18:03

reporter   ~0006678

with attached patch I tried to fix it, but this doesn't seem to be correct, because it then crashes here:

Program received signal SIGSEGV, Segmentation fault.
[Switching to process 25739, thread 0xc7975470000]
0x00000c7972c1e5d1 in objc_msg_lookup_internal (receiver=0x7f7ffffd7d98, selector=0xc797251c620, sender=0x0) at sendmsg2.c:66
66 Slot_t result = objc_dtable_lookup(class->dtable, selector->index);
(gdb) bt
#0 0x00000c7972c1e5d1 in objc_msg_lookup_internal (receiver=0x7f7ffffd7d98, selector=0xc797251c620, sender=0x0) at sendmsg2.c:66
0000001 0x00000c7972c1f1f2 in objc_msg_lookup (receiver=0xc79739f8210, selector=0xc797251c620) at sendmsg2.c:398
0000002 0x00000c79722f58d2 in -[CardElement setValues:atIndex:forKey:] (self=0xc796ee9e790, _cmd=0xc797251c660, newValues=0xc79739f8010, idx=0, key=0xc7972522220) at CardElement.m:155
0000003 0x00000c79722f5a37 in -[CardElement setSingleValue:atIndex:forKey:] (self=0xc796ee9e790, _cmd=0xc797251c670, newValue=0xc7972522220, idx=0, key=0xc7972522220) at CardElement.m:180
0000004 0x00000c79722f5ab8 in -[CardElement setSingleValue:forKey:] (self=0xc796ee9e790, _cmd=0xc7972522680, newValue=0xc7972522220, key=0xc7972522220) at CardElement.m:187
0000005 0x00000c79722fec46 in -[iCalDateTime _setDateTime:forAllDayEntity:] (self=0xc796ee9e790, _cmd=0xc7972522690, dateTime=0x0, forAllDayEntity=0 '\0') at iCalDateTime.m:143
0000006 0x00000c79722fec98 in -[iCalDateTime setDateTime:] (self=0xc796ee9e790, _cmd=0xc7972524e60, dateTime=0x0) at iCalDateTime.m:148
...
(gdb) frame 2
0000002 0x00000c79722f58d2 in -[CardElement setValues:atIndex:forKey:] (self=0xc796ee9e790, _cmd=0xc797251c660, newValues=0xc79739f8010, idx=0, key=0xc7972522220) at CardElement.m:155
155 while ([oldValues count] < (idx + 1))
Current language: auto; currently minimal
(gdb) list
150 oldValues = [NSMutableArray new];
151 [values setObject: oldValues forKey: key];
152 [oldValues release];
153 }
154
155 while ([oldValues count] < (idx + 1))
156 {
157 subValues = [NSMutableArray new];
158 [oldValues addObject: subValues];
159 [subValues release];
(gdb) print oldValues
$1 = (class NSMutableArray ) 0xc79739f8210
(gdb) print
oldValues
$2 = {{{isa = 0xdeadface}}}

accessing that already released oldValues

buzzdee

buzzdee

2014-03-10 18:26

reporter   ~0006679

some more notes: I upgraded from the latest 2.1.X version.
As a temporary workaround, I added a line like:
127.0.0.1 outlook.office365.com to my /etc/hosts file on the SOGo server, then I get a 404, and I'm at least able to login.

The URL above is a bit mangled, but I could give the URL to my calendar privately if needed.

ludovic

ludovic

2014-12-30 19:14

administrator   ~0007964

Can you send me a privately a link to that calendar so I can try it?

buzzdee

buzzdee

2014-12-30 20:03

reporter   ~0007979

I just tried again to load that calendar into SOGo, and the problem doesn't seem to exists anymore.

Then I guess, for the time being, this should be closed.
If I ever run into it again, I'll send you the link to the calendar.

thanks,
Sebastian

Issue History

Date Modified Username Field Change
2014-03-10 17:46 buzzdee New Issue
2014-03-10 18:03 buzzdee Note Added: 0006678
2014-03-10 18:26 buzzdee Note Added: 0006679
2014-12-30 19:14 ludovic Note Added: 0007964
2014-12-30 20:03 buzzdee Note Added: 0007979
2014-12-30 21:00 ludovic Status new => resolved
2014-12-30 21:00 ludovic Resolution open => suspended
2014-12-30 21:00 ludovic Assigned To => ludovic