Re: [BUG] IMAP hibernation fails on FreeBSD 15.x with "Invalid peer_dev_major value"

Timo Sirainen via dovecot <[email protected]>
Newsgroups gmane.mail.imap.dovecot
Message-ID <[email protected]>
Hi,

I'm mainly wondering if the device is NODEV, is the inode still usable or is that also some 0 or -1? This is likely a simpler patch, but it also removes the inode check also, which isn't good if it would be usable:

diff --git a/src/imap/imap-client-hibernate.c b/src/imap/imap-client-hibernate.c
index cb640c3695..191b0cfef9 100644
--- a/src/imap/imap-client-hibernate.c
+++ b/src/imap/imap-client-hibernate.c
@@ -62,7 +62,10 @@ static void imap_hibernate_write_cmd(struct client *client, string_t *cmd,
        str_append_tabescaped(cmd, user->set->unexpanded_mail_log_prefix);
        str_printfa(cmd, "\tidle_notify_interval=%u",
                    client->set->imap_idle_notify_interval);
-       if (fstat(client->fd_in, &peer_st) == 0) {
+       /* e.g. FreeBSD returns NODEV as sockets' st_dev, which can't be
+          used for verifying that the fd is the expected one. */
+       if (fstat(client->fd_in, &peer_st) == 0 &&
+           peer_st.st_dev != (dev_t)-1) {
                str_printfa(cmd, "\tpeer_dev_major=%lu\tpeer_dev_minor=%lu\tpeer_ino=%llu",
                            (unsigned long)major(peer_st.st_dev),
                            (unsigned long)minor(peer_st.st_dev),

> On 31. Jul 2026, at 20.44, Jordan Ostrev <[email protected]> wrote:
> 
> Hi Aki, Timo,
> Checking in on the FreeBSD 15 imap-hibernate 64-bit IPC fix below.
> Have you had any time to review or test the patch on your end? Happy to refine the changes or format them as needed for upstream merge.
> Thanks,
> Jordan
> 
> 
>> On 25 Jun 2026, at 19:34, Aki Tuomi <[email protected]> wrote:
>> 
>> Did you also test that incoming mail, or changes to SELECTed mailboxes is noticed while hibernated?
>>   Aki
>>  
>>> 
>>> On 25/06/2026 18:34 EEST Jordan Ostrev via dovecot <[email protected]> wrote: 
>>>     Hi Timo,
>>>   I am running Dovecot 2.4.4 under FreeBSD 15.x, and I noticed that the IMAP hibernation feature fails to work natively on this platform.
>>>   The Problem
>>>   Under FreeBSD, running fstat() on a network socket returns NODEV (UINT64_MAX or 18446744073709551615) for both major()and minor() device numbers.
>>>   When imap-hibernate tries to serialize these values, they are printed as 64-bit unsigned integers. However, Dovecot's internal parser in imap-master-client.c uses standard 32-bit integers (unsigned int) and str_to_uint(). This causes an integer overflow, triggering the following error during hibernation: Failed to parse client input: Invalid peer_dev_major value: 18446744073709551615
>>>   The Solution
>>>   I've created a patch for src/imap/imap-master-client.c that scales the parser variables to uint64_t and switches the parsing function to str_to_uint64(). Additionally, it updates the verification assertion to prevent BUG crashes due to the expected dev_tbehavior of virtual network sockets under FreeBSD.
>>>   Here is the combined patch that fixes the issue completely:
>>>   Фрагмент от код
>>>   --- src/imap/imap-master-client.c.orig 2026-05-12 10:48:57 UTC
>>> +++ src/imap/imap-master-client.c
>>> @@ -75,7 +75,7 @@ imap_master_client_parse_input(const char *const *args
>>> const char **error_r)
>>> {
>>> const char *key, *value;
>>> - unsigned int peer_dev_major = 0, peer_dev_minor = 0;
>>> + uint64_t peer_dev_major = 0, peer_dev_minor = 0;
>>>   i_zero(input_r);
>>> i_zero(stats_r);
>>> @@ -128,13 +128,13 @@ imap_master_client_parse_input(const char *const *args
>>> return -1;
>>> }
>>> } else if (strcmp(key, "peer_dev_major") == 0) {
>>> - if (str_to_uint(value, &peer_dev_major) < 0) {
>>> + if (str_to_uint64(value, &peer_dev_major) < 0) {
>>> *error_r = t_strdup_printf(
>>> "Invalid peer_dev_major value: %s", value);
>>> return -1;
>>> }
>>> } else if (strcmp(key, "peer_dev_minor") == 0) {
>>> - if (str_to_uint(value, &peer_dev_minor) < 0) {
>>> + if (str_to_uint64(value, &peer_dev_minor) < 0) {
>>> *error_r = t_strdup_printf(
>>> "Invalid peer_dev_minor value: %s", value);
>>> return -1;
>>> @@ -265,7 +265,7 @@ imap_master_client_parse_input(const char *const *args
>>> }
>>> if (peer_dev_major != 0 || peer_dev_minor != 0) {
>>> master_input_r->peer_dev =
>>> - makedev(peer_dev_major, peer_dev_minor);
>>> + makedev((unsigned long)peer_dev_major, (unsigned long)peer_dev_minor);
>>> }
>>> return 0;
>>> }
>>> @@ -410,7 +410,8 @@ static int imap_master_client_verify(const struct imap
>>> return -1;
>>> }
>>> if (peer_st.st_ino != master_input->peer_ino ||
>>> - !CMP_DEV_T(peer_st.st_dev, master_input->peer_dev)) {
>>> + (!CMP_DEV_T(peer_st.st_dev, master_input->peer_dev) &&
>>> + major(peer_st.st_dev) != (unsigned long)-1)) {
>>> *error_r = t_strdup_printf(
>>> "BUG: Expected peer device=%lu,%lu inode=%s doesn't match "
>>> "client fd's actual device=%lu,%lu inode=%s",
>>> Result
>>>   With this patch applied, hibernation works flawlessly under FreeBSD:
>>>   # doveadm who
>>> username # service (pids) (ips)
>>> [email protected] 1 imap (26000) (46.10.221.52) 
>>> [email protected] 2 imap-hibernate (26260) (46.10.221.52) 
>>> No error messages are logged by dovecot when it hibernates and restores clients. I hope this can be integrated into the upstream code.
>>>   Best regards,
>>>   Jordan
>>>        
>>>> 
>>>> On 25 Jun 2026, at 15:50, Jordan Ostrev <[email protected]> wrote: 
>>>>   Hi Timo,
>>>> i’m not programmer at all but here is my understanding of the problem:
>>>> In src/imap/imap-client-hibernate.c, the code serializes peer_dev_major and peer_dev_minor using major() and minor() macros:
>>>>   str_printfa(cmd, "\tpeer_dev_major=%lu\tpeer_dev_minor=%lu\tpeer_ino=%llu",
>>>> (unsigned long)major(peer_st.st_dev),
>>>> (unsigned long)minor(peer_st.st_dev),
>>>> (unsigned long long)peer_st.st_ino);
>>>>   On FreeBSD, major() and minor() can return UINT64_MAX (18446744073709551615) for file descriptors that are not block/character devices (such as sockets on tmpfs/devfs). This value exceeds UINT_MAX and cannot be parsed by str_to_uint() in imap-master-client.c, causing hibernation to fail.
>>>>    
>>>>> 
>>>>> On 25 Jun 2026, at 14:37, Jordan Ostrev <[email protected]> wrote: 
>>>>>   Hi Timo,
>>>>>   I’ve made freebsd port patch which looks like that:
>>>>>   # cat files/patch-configure.ac
>>>>> --- configure.ac.orig 2026-06-25 11:03:42 UTC
>>>>> +++ configure.ac
>>>>> @@ -363,7 +363,7 @@ AS_CASE(
>>>>> DOVECOT_IOLOOP
>>>>> DOVECOT_NOTIFY
>>>>> AS_CASE(
>>>>> - ["$notify"],
>>>>> + ["$have_notify"],
>>>>> [none], [BUILD_IMAP_HIBERNATE=0],
>>>>> [kqueue], [BUILD_IMAP_HIBERNATE=0],
>>>>> [BUILD_IMAP_HIBERNATE=1])
>>>>>   I’m simulating the situation with telnet:
>>>>> c idle
>>>>> + idling
>>>>> * 4228 EXPUNGE
>>>>> * 0 RECENT
>>>>> * OK Still here
>>>>> * OK Still here
>>>>> * 4228 EXISTS
>>>>> * 1 RECENT
>>>>> * 4228 EXPUNGE
>>>>> * 0 RECENT
>>>>> * 4228 EXISTS
>>>>> * 1 RECENT
>>>>> * 4228 EXPUNGE
>>>>> * 0 RECENT
>>>>> * OK Still here
>>>>> * OK Still here
>>>>> * OK Still here
>>>>> * OK Still here
>>>>> * 4228 EXISTS
>>>>> * 1 RECENT
>>>>> * 4228 EXPUNGE
>>>>> * 0 RECENT
>>>>> * OK Still here
>>>>> * OK Still here
>>>>> d idle
>>>>> c BAD Idle completed.
>>>>> + idling
>>>>> * OK Still here
>>>>> * 4228 EXISTS
>>>>> * 1 RECENT
>>>>> * 4228 EXPUNGE
>>>>> * 0 RECENT
>>>>> * OK Still here
>>>>> * 4228 EXISTS
>>>>> * 4227 FETCH (FLAGS (\Seen $NotJunk NotJunk))
>>>>> * 4228 EXPUNGE
>>>>> * OK Still here
>>>>>     in the log I see following:
>>>>>   Jun 25 14:21:17 classic dovecot[29292]: imap-hibernate: Error: conn unix:imap-hibernate (uid=125): Failed to parse client input: Invalid peer_dev_major value: 18446744073709551615
>>>>> Jun 25 14:21:17 classic dovecot[29292]: imap([email protected])<29454><CLP/EhJVqIguCt00>: Error: Couldn't hibernate imap client: /var/run/dovecot/imap-hibernate returned failure: Failed to parse client input: Invalid peer_dev_major value: 18446744073709551615 
>>>>> Jun 25 14:21:17 classic dovecot[29292]: imap-hibernate: Error: conn unix:imap-hibernate (uid=125): Failed to parse client input: Invalid peer_dev_major value: 18446744073709551615
>>>>> Jun 25 14:21:17 classic dovecot[29292]: imap([email protected])<30943><EJZELRJVp5QuCt00>: Error: Couldn't hibernate imap client: /var/run/dovecot/imap-hibernate returned failure: Failed to parse client input: Invalid peer_dev_major value: 18446744073709551615 
>>>>> Jun 25 14:26:03 classic dovecot[29292]: imap-hibernate: Error: conn unix:imap-hibernate (uid=125): Failed to parse client input: Invalid peer_dev_major value: 18446744073709551615
>>>>> Jun 25 14:26:03 classic dovecot[29292]: imap([email protected])<30943><EJZELRJVp5QuCt00>: Error: Couldn't hibernate imap client: /var/run/dovecot/imap-hibernate returned failure: Failed to parse client input: Invalid peer_dev_major value: 18446744073709551615 
>>>>> Jun 25 14:26:03 classic dovecot[29292]: imap-hibernate: Error: conn unix:imap-hibernate (uid=125): Failed to parse client input: Invalid peer_dev_major value: 18446744073709551615
>>>>> Jun 25 14:26:03 classic dovecot[29292]: imap([email protected])<29454><CLP/EhJVqIguCt00>: Error: Couldn't hibernate imap client: /var/run/dovecot/imap-hibernate returned failure: Failed to parse client input: Invalid peer_dev_major value: 18446744073709551615 
>>>>> Jun 25 14:29:28 classic dovecot[29292]: imap-hibernate: Error: conn unix:imap-hibernate (uid=125): Failed to parse client input: Invalid peer_dev_major value: 18446744073709551615
>>>>> Jun 25 14:29:28 classic dovecot[29292]: imap([email protected])<29454><CLP/EhJVqIguCt00>: Error: Couldn't hibernate imap client: /var/run/dovecot/imap-hibernate returned failure: Failed to parse client input: Invalid peer_dev_major value: 18446744073709551615 
>>>>> Jun 25 14:33:36 classic dovecot[29292]: imap-hibernate: Error: conn unix:imap-hibernate (uid=125): Failed to parse client input: Invalid peer_dev_major value: 18446744073709551615
>>>>> Jun 25 14:33:36 classic dovecot[29292]: imap([email protected])<33114><cX5QWRJVrZguCt00>: Error: Couldn't hibernate imap client: /var/run/dovecot/imap-hibernate returned failure: Failed to parse client input: Invalid peer_dev_major value: 18446744073709551615 
>>>>> Jun 25 14:33:37 classic dovecot[29292]: imap-hibernate: Error: conn unix:imap-hibernate (uid=125): Failed to parse client input: Invalid peer_dev_major value: 18446744073709551615
>>>>> Jun 25 14:33:37 classic dovecot[29292]: imap([email protected])<33112><NlVOWRJVkbEuCt00>: Error: Couldn't hibernate imap client: /var/run/dovecot/imap-hibernate returned failure: Failed to parse client input: Invalid peer_dev_major value: 18446744073709551615 
>>>>> Jun 25 14:34:40 classic dovecot[29292]: imap-hibernate: Error: conn unix:imap-hibernate (uid=125): Failed to parse client input: Invalid peer_dev_major value: 18446744073709551615
>>>>> Jun 25 14:34:40 classic dovecot[29292]: imap([email protected])<33112><NlVOWRJVkbEuCt00>: Error: Couldn't hibernate imap client: /var/run/dovecot/imap-hibernate returned failure: Failed to parse client input: Invalid peer_dev_major value: 18446744073709551615 
>>>>>     Here is my piece of my config:
>>>>> # dovecot -a | grep hibernate
>>>>> imap_hibernate_timeout = 1 mins
>>>>> service imap-hibernate {
>>>>> unix_listener imap-hibernate {
>>>>>   What we can do more?
>>>>>   KR,
>>>>> Jordan
>>>>>    
>>>>>> 
>>>>>> On 25 Jun 2026, at 12:34, Timo Sirainen <[email protected]> wrote: 
>>>>>>   On 24. Jun 2026, at 21.34, Jordan Ostrev via dovecot <[email protected]> wrote:
>>>>>>> Hi,
>>>>>>> IMAP hibernation compiles and attempts to run on FreeBSD 15.x (tested with
>>>>>>> Dovecot 2.4.4 and FreeBSD 15.1), but fails at runtime with:
>>>>>>> plain
>>>>>>>   imap-hibernate: Error: conn unix:imap-hibernate (uid=125): Failed to parse client input: Invalid peer_dev_major value: 18446744073709551615
>>>>>>>   Jun 24 21:27:08 classic dovecot[36888]: imap-hibernate: Error: conn unix:imap-hibernate (uid=125): Failed to parse client input: Invalid peer_dev_major value: 18446744073709551615
>>>>>>> Jun 24 21:27:08 classic dovecot[36888]: imap([email protected])<37120><ExaV/gNVAdt/AAAB>: Error: Couldn't hibernate imap client: /var/run/dovecot/imap-hibernate returned failure: Failed to parse client input: Invalid peer_dev_major value: 18446744073709551615
>>>>>> ..
>>>>>>> 1. Disable hibernation at compile time for kqueue systems, or
>>>>>> It was already supposed to be done, but looks like there's a bug. Can you verify if this works? :
>>>>>>   diff --git a/configure.ac b/configure.ac
>>>>>> index 9beacaa299..04f9c8edd6 100644
>>>>>> --- a/configure.ac
>>>>>> +++ b/configure.ac
>>>>>> @@ -363,7 +363,7 @@ DOVECOT_TYPEOF
>>>>>> DOVECOT_IOLOOP
>>>>>> DOVECOT_NOTIFY
>>>>>> AS_CASE(
>>>>>> - ["$notify"],
>>>>>> + ["$have_notify"],
>>>>>> [none], [BUILD_IMAP_HIBERNATE=0],
>>>>>> [kqueue], [BUILD_IMAP_HIBERNATE=0],
>>>>>> [BUILD_IMAP_HIBERNATE=1])
>>> Hi Timo,
>>>   I am running Dovecot 2.4.4 under FreeBSD 15.x, and I noticed that the IMAP
>>> hibernation feature fails to work natively on this platform.
>>>   The Problem
>>>   Under FreeBSD, running fstat() on a network socket
>>> returns NODEV (UINT64_MAX or 18446744073709551615) for
>>> both major()and minor() device numbers.
>>>   When imap-hibernate tries to serialize these values, they are printed as
>>> 64-bit unsigned integers. However, Dovecot's internal parser
>>> in imap-master-client.c uses standard 32-bit integers (unsigned int)
>>> and str_to_uint(). This causes an integer overflow, triggering the
>>> following error during hibernation: Failed to parse client input: Invalid
>>> peer_dev_major value: 18446744073709551615
>>>   The Solution
>>>   I've created a patch for src/imap/imap-master-client.c that scales the
>>> parser variables to uint64_t and switches the parsing function
>>> to str_to_uint64(). Additionally, it updates the verification assertion to
>>> prevent BUG crashes due to the expected dev_tbehavior of virtual network
>>> sockets under FreeBSD.
>>>   Here is the combined patch that fixes the issue completely:
>>>   Fragment ot kod
>>>   --- src/imap/imap-master-client.c.orig 2026-05-12 10:48:57 UTC
>>> +++ src/imap/imap-master-client.c
>>> @@ -75,7 +75,7 @@ imap_master_client_parse_input(const char *const *args
>>> const char **error_r)
>>> {
>>> const char *key, *value;
>>> - unsigned int peer_dev_major = 0, peer_dev_minor = 0;
>>> + uint64_t peer_dev_major = 0, peer_dev_minor = 0;
>>>   i_zero(input_r);
>>> i_zero(stats_r);
>>> @@ -128,13 +128,13 @@ imap_master_client_parse_input(const char *const *args
>>> return -1;
>>> }
>>> } else if (strcmp(key, "peer_dev_major") == 0) {
>>> - if (str_to_uint(value, &peer_dev_major) < 0) {
>>> + if (str_to_uint64(value, &peer_dev_major) < 0) {
>>> *error_r = t_strdup_printf(
>>> "Invalid peer_dev_major value: %s", value);
>>> return -1;
>>> }
>>> } else if (strcmp(key, "peer_dev_minor") == 0) {
>>> - if (str_to_uint(value, &peer_dev_minor) < 0) {
>>> + if (str_to_uint64(value, &peer_dev_minor) < 0) {
>>> *error_r = t_strdup_printf(
>>> "Invalid peer_dev_minor value: %s", value);
>>> return -1;
>>> @@ -265,7 +265,7 @@ imap_master_client_parse_input(const char *const *args
>>> }
>>> if (peer_dev_major != 0 || peer_dev_minor != 0) {
>>> master_input_r->peer_dev =
>>> - makedev(peer_dev_major, peer_dev_minor);
>>> + makedev((unsigned long)peer_dev_major, (unsigned long)peer_dev_minor);
>>> }
>>> return 0;
>>> }
>>> @@ -410,7 +410,8 @@ static int imap_master_client_verify(const struct imap
>>> return -1;
>>> }
>>> if (peer_st.st_ino != master_input->peer_ino ||
>>> - !CMP_DEV_T(peer_st.st_dev, master_input->peer_dev)) {
>>> + (!CMP_DEV_T(peer_st.st_dev, master_input->peer_dev) &&
>>> + major(peer_st.st_dev) != (unsigned long)-1)) {
>>> *error_r = t_strdup_printf(
>>> "BUG: Expected peer device=%lu,%lu inode=%s doesn't match "
>>> "client fd's actual device=%lu,%lu inode=%s",
>>>   Result
>>>   With this patch applied, hibernation works flawlessly under FreeBSD:
>>>   # doveadm who
>>> username # service (pids) (ips)
>>> [email protected] 1 imap (26000) (46.10.221.52) 
>>> [email protected] 2 imap-hibernate (26260) (46.10.221.52) 
>>>   No error messages are logged by dovecot when it hibernates and restores
>>> clients. I hope this can be integrated into the upstream code.
>>>   Best regards,
>>>   Jordan
>>>   On 25 Jun 2026, at 15:50, Jordan Ostrev <[email protected]> wrote: 
>>> Hi Timo,
>>> i'm not programmer at all but here is my understanding of the problem:
>>>   In src/imap/imap-client-hibernate.c, the code serializes peer_dev_major and peer_dev_minor using major() and minor() macros:
>>>   str_printfa(cmd, "\tpeer_dev_major=%lu\tpeer_dev_minor=%lu\tpeer_ino=%llu",
>>> (unsigned long)major(peer_st.st_dev),
>>> (unsigned long)minor(peer_st.st_dev),
>>> (unsigned long long)peer_st.st_ino);
>>>   On FreeBSD, major() and minor() can return UINT64_MAX (18446744073709551615) for file descriptors that are not block/character devices (such as sockets on tmpfs/devfs). This value exceeds UINT_MAX and cannot be parsed by str_to_uint() in imap-master-client.c, causing hibernation to fail.
>>>   On 25 Jun 2026, at 14:37, Jordan Ostrev <[email protected]> wrote: 
>>> Hi Timo,
>>>   I've made freebsd port patch which looks like that:
>>>   # cat files/patch-configure.ac
>>> --- configure.ac.orig 2026-06-25 11:03:42 UTC
>>> +++ configure.ac
>>> @@ -363,7 +363,7 @@ AS_CASE(
>>> DOVECOT_IOLOOP
>>> DOVECOT_NOTIFY
>>> AS_CASE(
>>> - ["$notify"],
>>> + ["$have_notify"],
>>> [none], [BUILD_IMAP_HIBERNATE=0],
>>> [kqueue], [BUILD_IMAP_HIBERNATE=0],
>>> [BUILD_IMAP_HIBERNATE=1])
>>>   I'm simulating the situation with telnet:
>>> c idle
>>> + idling
>>> * 4228 EXPUNGE
>>> * 0 RECENT
>>> * OK Still here
>>> * OK Still here
>>> * 4228 EXISTS
>>> * 1 RECENT
>>> * 4228 EXPUNGE
>>> * 0 RECENT
>>> * 4228 EXISTS
>>> * 1 RECENT
>>> * 4228 EXPUNGE
>>> * 0 RECENT
>>> * OK Still here
>>> * OK Still here
>>> * OK Still here
>>> * OK Still here
>>> * 4228 EXISTS
>>> * 1 RECENT
>>> * 4228 EXPUNGE
>>> * 0 RECENT
>>> * OK Still here
>>> * OK Still here
>>> d idle
>>> c BAD Idle completed.
>>> + idling
>>> * OK Still here
>>> * 4228 EXISTS
>>> * 1 RECENT
>>> * 4228 EXPUNGE
>>> * 0 RECENT
>>> * OK Still here
>>> * 4228 EXISTS
>>> * 4227 FETCH (FLAGS (\Seen $NotJunk NotJunk))
>>> * 4228 EXPUNGE
>>> * OK Still here
>>>   in the log I see following:
>>>   Jun 25 14:21:17 classic dovecot[29292]: imap-hibernate: Error: conn
>>> unix:imap-hibernate (uid=125): Failed to parse client input: Invalid
>>> peer_dev_major value: 18446744073709551615
>>> Jun 25 14:21:17 classic dovecot[29292]:
>>> imap([email protected])<29454><CLP/EhJVqIguCt00>: Error: Couldn't 
>>> hibernate imap client: /var/run/dovecot/imap-hibernate returned
>>> failure: Failed to parse client input: Invalid peer_dev_major value:
>>> 18446744073709551615
>>> Jun 25 14:21:17 classic dovecot[29292]: imap-hibernate: Error: conn
>>> unix:imap-hibernate (uid=125): Failed to parse client input: Invalid
>>> peer_dev_major value: 18446744073709551615
>>> Jun 25 14:21:17 classic dovecot[29292]:
>>> imap([email protected])<30943><EJZELRJVp5QuCt00>: Error: Couldn't 
>>> hibernate imap client: /var/run/dovecot/imap-hibernate returned
>>> failure: Failed to parse client input: Invalid peer_dev_major value:
>>> 18446744073709551615
>>> Jun 25 14:26:03 classic dovecot[29292]: imap-hibernate: Error: conn
>>> unix:imap-hibernate (uid=125): Failed to parse client input: Invalid
>>> peer_dev_major value: 18446744073709551615
>>> Jun 25 14:26:03 classic dovecot[29292]:
>>> imap([email protected])<30943><EJZELRJVp5QuCt00>: Error: Couldn't 
>>> hibernate imap client: /var/run/dovecot/imap-hibernate returned
>>> failure: Failed to parse client input: Invalid peer_dev_major value:
>>> 18446744073709551615
>>> Jun 25 14:26:03 classic dovecot[29292]: imap-hibernate: Error: conn
>>> unix:imap-hibernate (uid=125): Failed to parse client input: Invalid
>>> peer_dev_major value: 18446744073709551615
>>> Jun 25 14:26:03 classic dovecot[29292]:
>>> imap([email protected])<29454><CLP/EhJVqIguCt00>: Error: Couldn't 
>>> hibernate imap client: /var/run/dovecot/imap-hibernate returned
>>> failure: Failed to parse client input: Invalid peer_dev_major value:
>>> 18446744073709551615
>>> Jun 25 14:29:28 classic dovecot[29292]: imap-hibernate: Error: conn
>>> unix:imap-hibernate (uid=125): Failed to parse client input: Invalid
>>> peer_dev_major value: 18446744073709551615
>>> Jun 25 14:29:28 classic dovecot[29292]:
>>> imap([email protected])<29454><CLP/EhJVqIguCt00>: Error: Couldn't 
>>> hibernate imap client: /var/run/dovecot/imap-hibernate returned
>>> failure: Failed to parse client input: Invalid peer_dev_major value:
>>> 18446744073709551615
>>> Jun 25 14:33:36 classic dovecot[29292]: imap-hibernate: Error: conn
>>> unix:imap-hibernate (uid=125): Failed to parse client input: Invalid
>>> peer_dev_major value: 18446744073709551615
>>> Jun 25 14:33:36 classic dovecot[29292]:
>>> imap([email protected])<33114><cX5QWRJVrZguCt00>: Error: Couldn't 
>>> hibernate imap client: /var/run/dovecot/imap-hibernate returned
>>> failure: Failed to parse client input: Invalid peer_dev_major value:
>>> 18446744073709551615
>>> Jun 25 14:33:37 classic dovecot[29292]: imap-hibernate: Error: conn
>>> unix:imap-hibernate (uid=125): Failed to parse client input: Invalid
>>> peer_dev_major value: 18446744073709551615
>>> Jun 25 14:33:37 classic dovecot[29292]:
>>> imap([email protected])<33112><NlVOWRJVkbEuCt00>: Error: Couldn't 
>>> hibernate imap client: /var/run/dovecot/imap-hibernate returned
>>> failure: Failed to parse client input: Invalid peer_dev_major value:
>>> 18446744073709551615
>>> Jun 25 14:34:40 classic dovecot[29292]: imap-hibernate: Error: conn
>>> unix:imap-hibernate (uid=125): Failed to parse client input: Invalid
>>> peer_dev_major value: 18446744073709551615
>>> Jun 25 14:34:40 classic dovecot[29292]:
>>> imap([email protected])<33112><NlVOWRJVkbEuCt00>: Error: Couldn't 
>>> hibernate imap client: /var/run/dovecot/imap-hibernate returned
>>> failure: Failed to parse client input: Invalid peer_dev_major value:
>>> 18446744073709551615
>>>   Here is my piece of my config:
>>> # dovecot -a | grep hibernate
>>> imap_hibernate_timeout = 1 mins
>>> service imap-hibernate {
>>> unix_listener imap-hibernate {
>>>   What we can do more?
>>>   KR,
>>> Jordan
>>>   On 25 Jun 2026, at 12:34, Timo Sirainen <[email protected]> wrote: 
>>>   On 24. Jun 2026, at 21.34, Jordan Ostrev via dovecot
>>> <[email protected]> wrote: 
>>>   Hi,
>>> IMAP hibernation compiles and attempts to run on FreeBSD 15.x
>>> (tested with
>>> Dovecot 2.4.4 and FreeBSD 15.1), but fails at runtime with:
>>> plain
>>>   imap-hibernate: Error: conn unix:imap-hibernate (uid=125): Failed
>>> to parse client input: Invalid peer_dev_major value:
>>> 18446744073709551615
>>>   Jun 24 21:27:08 classic dovecot[36888]: imap-hibernate: Error:
>>> conn unix:imap-hibernate (uid=125): Failed to parse client input:
>>> Invalid peer_dev_major value: 18446744073709551615
>>> Jun 24 21:27:08 classic dovecot[36888]:
>>> imap([email protected])<37120><ExaV/gNVAdt/AAAB>: Error: 
>>> Couldn't hibernate imap client: /var/run/dovecot/imap-hibernate
>>> returned failure: Failed to parse client input: Invalid
>>> peer_dev_major value: 18446744073709551615
>>>   ..
>>>   1. Disable hibernation at compile time for kqueue systems, or
>>>   It was already supposed to be done, but looks like there's a bug.
>>> Can you verify if this works? :
>>>   diff --git a/configure.ac b/configure.ac
>>> index 9beacaa299..04f9c8edd6 100644
>>> --- a/configure.ac
>>> +++ b/configure.ac
>>> @@ -363,7 +363,7 @@ DOVECOT_TYPEOF
>>> DOVECOT_IOLOOP
>>> DOVECOT_NOTIFY
>>> AS_CASE(
>>> - ["$notify"],
>>> + ["$have_notify"],
>>> [none], [BUILD_IMAP_HIBERNATE=0],
>>> [kqueue], [BUILD_IMAP_HIBERNATE=0],
>>> [BUILD_IMAP_HIBERNATE=1])
>>> _______________________________________________
>>> dovecot mailing list -- [email protected] To unsubscribe send an email to [email protected]
> 

_______________________________________________
dovecot mailing list -- [email protected]
To unsubscribe send an email to [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.