Send connman mailing list submissions to
        [email protected]

To subscribe or unsubscribe via the World Wide Web, visit
        https://lists.01.org/mailman/listinfo/connman
or, via email, send a message with subject or body 'help' to
        [email protected]

You can reach the person managing the list at
        [email protected]

When replying, please edit your Subject line so it is more specific
than "Re: Contents of connman digest..."


Today's Topics:

   1. Re: Connman coredump (Daniel Wagner)


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

Message: 1
Date: Mon, 25 Sep 2017 21:20:27 +0200
From: Daniel Wagner <[email protected]>
To: Cliff McDiarmid <[email protected]>, [email protected]
Subject: Re: Connman coredump
Message-ID: <[email protected]>
Content-Type: text/plain; charset=utf-8

Hi Cliff,

[...]

connmand[3059]: wlp2s0 {RX} 552 packets 168100 bytes
connmand[3059]: wlp2s0 {TX} 190 packets 25492 bytes
connmand[3059]: src/ipconfig.c:update_stats() service 0x136fb50
connmand[3059]: src/service.c:stats_update() service 0x136fb50
connmand[3059]: src/stats.c:__connman_stats_update() ring buffer is full, 
update history file


When the buffer is full, ConnMan creates a summary and adds it 
to the history file.


connmand[3059]: src/stats.c:stats_open() file 0x7ffe2ee42030 name 
/var/lib/connman/wifi_002710c99f58_544e434150453238313037_managed_psk/history
connmand[3059]: src/stats.c:stats_file_setup() file 0x7ffe2ee42030 fd 23 name 
/var/lib/connman/wifi_002710c99f58_544e434150453238313037_managed_psk/history
connmand[3059]: src/stats.c:stats_file_remap() file 0x7ffe2ee42030 size 4096 
addr (nil) len 0
connmand[3059]: src/stats.c:stats_file_setup() file 0x7ffe2ee42090 fd 24 name 
/var/lib/connman/stats.MGTZ6Y.tmp
connmand[3059]: src/stats.c:stats_file_remap() file 0x7ffe2ee42090 size 4096 
addr (nil) len 0


So this looks still okay. The first remap is the history file open (empty
file), the secon remap is a the temporay new history file (also empty).



(connmand:3059): GLib-CRITICAL **: g_date_set_time_t: assertion 
'g_date_valid_dmy (date->day, date->month, date->year)' failed

(connmand:3059): GLib-CRITICAL **: g_date_compare: assertion 'g_date_valid 
(lhs)' failed

(connmand:3059): GLib-CRITICAL **: g_date_days_between: assertion 'g_date_valid 
(d1)' failed

(connmand:3059): GLib-CRITICAL **: g_date_set_time_t: assertion 
'g_date_valid_dmy (date->day, date->month, date->year)' failed

(connmand:3059): GLib-CRITICAL **: g_date_set_time_t: assertion 
'g_date_valid_dmy (date->day, date->month, date->year)' failed

(connmand:3059): GLib-CRITICAL **: g_date_update_julian: assertion 
'g_date_valid_dmy (d->day, d->month, d->year)' failed

[...]


The corresponding code to those glib critical message is:


static int summarize(struct stats_file *data_file,
                        struct stats_file *history_file,
                        struct stats_file *temp_file)
{
        struct stats_iter data_iter;
        struct stats_iter history_iter;
        struct stats_record *cur, *next;

        GDate today, date_change_step_size;

        /*
         * First calculate the date when switch from monthly
         * accounting period size to daily size
         */
        g_date_set_time_t(&today, time(NULL));

        date_change_step_size = today;
        if (g_date_get_day(&today) - data_file->account_period_offset >= 0)
                g_date_subtract_months(&date_change_step_size, 2);
        else
                g_date_subtract_months(&date_change_step_size, 3);

        g_date_set_day(&date_change_step_size,
                        data_file->account_period_offset);



Since the first glib message is about g_data_set_time_t(), it could be that
glib is not happy with the timezone settings. 

https://developer.gnome.org/glib/stable/glib-Date-and-Time-Functions.html#g-date-set-time-t

g_data_set_time_t() calls g_date_valid_dmy eventually which is pretty unhappy:

/**
 * g_date_valid_dmy:
 * @day: day
 * @month: month
 * @year: year
 *
 * Returns %TRUE if the day-month-year triplet forms a valid, existing day
 * in the range of days #GDate understands (Year 1 or later, no more than
 * a few thousand years in the future).
 *
 * Returns: %TRUE if the date is a valid one
 */
gboolean     
g_date_valid_dmy (GDateDay   d, 
                  GDateMonth m, 
                  GDateYear  y)
{
  return ( (m > G_DATE_BAD_MONTH) &&
           (m < 13)               && 
           (d > G_DATE_BAD_DAY)   && 
           (y > G_DATE_BAD_YEAR)  &&   /* must check before using 
g_date_is_leap_year */
           (d <=  (g_date_is_leap_year (y) ? 
                   days_in_months[1][m] : days_in_months[0][m])) );
}

Can you check if your time settings are correct on your platform? 

Thanks,
Daniel


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

Subject: Digest Footer

_______________________________________________
connman mailing list
[email protected]
https://lists.01.org/mailman/listinfo/connman


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

End of connman Digest, Vol 23, Issue 17
***************************************

Reply via email to