| Summary: | dIMAP trying to select a 'noselect' folder | ||
|---|---|---|---|
| Product: | [Unmaintained] kmail | Reporter: | Nick Brown <nickbroon> |
| Component: | disconnected IMAP | Assignee: | kdepim bugs <pim-bugs-null> |
| Status: | RESOLVED WAITINGFORINFO | ||
| Severity: | normal | CC: | bjoern, heri+kde |
| Priority: | NOR | ||
| Version First Reported In: | unspecified | ||
| Target Milestone: | --- | ||
| Platform: | Compiled Sources | ||
| OS: | Linux | ||
| Latest Commit: | Version Fixed In: | ||
| Sentry Crash Report: | |||
|
Description
Nick Brown
2004-09-29 17:21:48 UTC
I can't reproduce this with kmail from head and a uw imap server. Can you provide an ethereal log from a sync of the disconnected account? cat dimap.textdump 5 LIST "" "Mail" * LIST (\NoSelect) "/" Mail 5 OK LIST completed 6 SELECT "Mail" 6 NO SELECT failed: Can't open Mail: not a selectable mailbox 7 LIST "" "Mail" * LIST (\NoSelect) "/" Mail 7 OK LIST completed I can provide a hexdump if required I think the above clearly shows that cacheimap in kmail is trying to select my top level mail folder even though the server identified it as (\NoSelect). This is against the imap RFC section 7.2.2. The above trace was made with kde cvs from only a few days ago. regular imap in kmail works just fine with this account. Can this bug be moved to "NEW", as I think this is now confirmed? Here is more debug output, including the kio_imap debug output.
kmail: Initting systray
kdeinit: PID 31952 terminated.
kmail: [void KIMProxy::unregisteredFromDCOP(const QCString&)] anonymous-31952
kmail: /Mail/ readConfig: mAnnotationFolderType=
kmail: processNextCheck, remaining 1
kmail: for host edinburgh.cisco.com current connections=0 and limit is 0
kmail: connection limit reached: false
kmail: processing next mail check for Cisco
kio (KLauncher): KLauncher: Got start_service_by_desktop_name('kwalletmanager',...)
klauncher: KRun::processDesktopExec: No URLs supplied to single-URL service kwalletmanager %u
kdeinit: Got EXEC_NEW 'kwalletmanager' from launcher.
Could not load library! Trying exec....
kio (KLauncher): kwalletmanager (pid 31990) up and running.
kdeinit: Debug wait activated.
kdeinit: Got EXEC_NEW 'kio_imap4' from launcher.
kdeinit: Suspending process
kdeinit: 'gdb kdeinit 31991' to debug
kdeinit: 'kill -SIGCONT 31991' to continue
kio (KLauncher): kio_imap4 (pid 31991) up and running.
kmail: check mail started - connections for host edinburgh.cisco.com now is 1
kmail: [void KIMProxy::registeredToDCOP(const QCString&)] kwalletmanager
kmail: dcopService: kopete, appId: kwalletmanager
kmail: [void KIMProxy::registeredToDCOP(const QCString&)] anonymous-31990
kmail: dcopService: kopete, appId: anonymous-31990
kdeinit: PID 31990 terminated.
kmail: [void KIMProxy::unregisteredFromDCOP(const QCString&)] anonymous-31990
kio (Slave): slave failed to connect to application pid=31991 protocol=imap
kio (Slave): slave is slow... pid=31991 t=2
kio (Slave): slave failed to connect to application pid=31991 protocol=imap
kio (Slave): slave is slow... pid=31991 t=4
kio (Slave): slave failed to connect to application pid=31991 protocol=imap
kio (Slave): slave is slow... pid=31991 t=6
kio_file: Done
kdeinit: PID 31334 terminated.
IMAP4::kdemain
kio_imap: IMAP4::dispatch - command=85
kio_imap: IMAP4::dispatch - command=48
kio_imap: IMAP4::dispatch - command=49
kio_imap: IMAP4::makeLogin - checking login
kio_imap: myAuth: *
kio_imap: imapParser::parseLoop - unhandledResponse:
kio_imap: * OK edinburgh.cisco.com IMAP4rev1 v10.220 server ready
kio_imap:
kio_imap: IMAP4: setHost: capability
kio_imap: 'imap4'
kio_imap: 'imap4rev1'
kio_imap: 'namespace'
kio_imap: 'scan'
kio_imap: 'sort'
kio_imap: 'auth=login'
kio_imap: 'thread=orderedsubject'
kio_imap: IMAP4::makeLogin - attempting login
kio_imap: IMAP4::makeLogin - open_PassDlg said user=nicbrown pass=xx
kio_imap: IMAP4::dispatch - command=77
kio_imap: IMAP4Protocol::special
kio (KIOJob): error 8 ACL
kio_imap: IMAP4::dispatch - command=67
kio (KSycoca): Trying to open ksycoca from /var/tmp/kdecache-kdedev/ksycoca
kio_imap: IMAP4::get - imap://nicbrown@edinburgh.cisco.com:143/Mail/;UID=0:0
kio_imap: URL: box= Mail, section= , type= , uid= 0:0, validity=
kio_imap: IMAP4::parseURL: box Mail
kio_imap: IMAP4::parseURL - return 1
kio_imap: IMAP4Protocol::assureBox - opening box
kio_imap: imapParser::sendCommand - setting current box to Mail
kio_imap: imapParser::parseResult - current box is now
kio (KIOJob): error 63 Unable to open folder Mail. The server replied: SELECT failed: Can't open Mail: not a selectable mailbox
kio_imap: IMAP4::dispatch - command=77
kio_imap: IMAP4Protocol::special
kio (KIOJob): error 8 ANNOTATEMORE
kmail: processNextCheck, remaining 0
kmail: account Cisco finished check
kmail: connections to server edinburgh.cisco.com now 0
kio_file: Done
kdeinit: PID 31333 terminated.
kparts: KPart::slotWidgetDestroyed(), deleting part unnamed
kparts: Part::~Part 0x81a9cb0
kio_imap: IMAP4::dispatch - command=50
kdecore (KConfigSkeleton): KConfigSkeleton::writeConfig()
kdecore (KConfigSkeleton): KConfigSkeleton::readConfig()
kmail: KMKernel::~KMKernel
kio (KDirWatch): KDirWatch deleted (FAM closed)
kio_imap: IMAP4::dispatch - command=51
kio_imap: IMAP4::slave_status
kio_file: Done
kdeinit: PID 30802 terminated.
On Wednesday 06 October 2004 19:24, Nick Brown wrote: > kio_imap: IMAP4::get - imap://nicbrown edinburgh cisco com:143/Mail/;UID=0:0 > kio_imap: URL: box= Mail, section= , type= , uid= 0:0, validity= > kio_imap: IMAP4::parseURL: box Mail > kio_imap: IMAP4::parseURL - return 1 > kio_imap: IMAP4Protocol::assureBox - opening box > kio_imap: imapParser::sendCommand - setting current box to Mail > kio_imap: imapParser::parseResult - current box is now ^^^ that's an empty string; the box name should appear after "is now ...". > kio (KIOJob): error 63 Unable to open folder Mail. The server replied: SELECT failed: Can't open Mail: not a selectable mailbox Would be interesting if you could enable kdDebug(7116) << "Writing: " << aStr << endl; in IMAP4Protocol::parseWriteLine (kdepim/kioslave/imap4/imap4.cc) and kdDebug(7116) << result.cstr(); in imapParser::parseLoop (in imapparser.cc) (then "make; make install" in kdepim/kioslave/imap4, and restart kmail) With the requested debugging uncommented. And my password removed :-)
kio (KLauncher): KLauncher: Got start_service_by_desktop_path('/home/kdedev/install/share/applications/kde/KMail.desktop', ...)
kio (KSycoca): Trying to open ksycoca from /var/tmp/kdecache-kdedev/ksycoca
kdeinit: Got EXT_EXEC 'kmail' from launcher.
Could not load library! Trying exec....
kio (KLauncher): kmail (pid 3599) up and running.
kmail: KMKernel::KMKernel
kdecore (KConfigSkeleton): Creating KConfigSkeleton (0x81504e8)
kdecore (KConfigSkeleton): KConfigSkeleton::readConfig()
libkdenetwork: creating new pgp object
libkdenetwork: Kpgp: gpg found
kmail: No Qt-native utf-7 codec found; registering QUtf7Codec from libkdenetwork
kmail: instantating KPIM::IdentityManager
kmail: Identity::readConfig(): UOID = 1866629463 for identity named "Cisco"
kmail: /Mail/ readConfig: mAnnotationFolderType=
kmail: pPopFilter set
kio (KIOJob): Starting kio_uiserver
kio (KLauncher): KLauncher: Got start_service_by_desktop_path('kio_uiserver.desktop', ...)
kdeinit: Got EXEC_NEW 'kio_uiserver' from launcher.
kio (KLauncher): kio_uiserver (pid 3986) up and running.
kio (KIOJob): startServiceByDesktopPath returned 0
kio (KIOJob): kio_uiserver registered
kio (UIServer): UIServer::newJob observerAppId=kmail. Giving id=1
kio (KSycoca): Trying to open ksycoca from /var/tmp/kdecache-kdedev/ksycoca
kio (KIOJob): stat file:/home/kdedev/.kde/share/apps/kmail/dimap/.85436054.directory
kio (KIOJob): stat file:/home/kdedev/.kde/share/apps/kmail/dimap/85436054/new/
kdeinit: Got EXEC_NEW 'kio_file' from launcher.
kio (KLauncher): kio_file (pid 3993) up and running.
kdeinit: Got EXEC_NEW 'kio_file' from launcher.
kio (KLauncher): kio_file (pid 3994) up and running.
kio_file: Starting 3994
kio (KSycoca): Trying to open ksycoca from /var/tmp/kdecache-kdedev/ksycoca
kio_file: FileProtocol::stat details=1
kio_file: ========= LIST file:/home/kdedev/.kde/share/apps/kmail/dimap/85436054/new/ =========
kio_file: ============= COMPLETED LIST ============
kio (KDirWatch): Available methods: Stat, FAM
kio_file: =============== BYE ===========
kdeinit: PID 3986 terminated.
kio (KSycoca): Trying to open ksycoca from /var/tmp/kdecache-kdedev/ksycoca
kio (UIServer): UIServer::totalFiles 1 0
kio (UIServer): UIServer::totalDirs 1 1
kio_file: Starting 3993
kio (UIServer): UIServer::jobFinished id=1
kio (UIServer): UIServer::newJob observerAppId=kmail. Giving id=2
kio (KSycoca): Trying to open ksycoca from /var/tmp/kdecache-kdedev/ksycoca
kio_file: FileProtocol::stat details=1
kio (KIOJob): stat file:/home/kdedev/.kde/share/apps/kmail/dimap/85436054/cur/
kio_file: FileProtocol::stat details=1
kio (KIOJob): error 11 /home/kdedev/.kde/share/apps/kmail/dimap/.85436054.directory
kio_file: ========= LIST file:/home/kdedev/.kde/share/apps/kmail/dimap/85436054/cur/ =========
kio_file: ============= COMPLETED LIST ============
kio_file: =============== BYE ===========
kio (UIServer): UIServer::totalFiles 2 0
kio (UIServer): UIServer::totalDirs 2 1
kio (UIServer): UIServer::jobFinished id=2
kio (UIServer): UIServer::newJob observerAppId=kmail. Giving id=3
kio (KIOJob): stat file:/home/kdedev/.kde/share/apps/kmail/dimap/85436054/tmp/
kio_file: FileProtocol::stat details=1
kio_file: ========= LIST file:/home/kdedev/.kde/share/apps/kmail/dimap/85436054/tmp/ =========
kio_file: ============= COMPLETED LIST ============
kio_file: =============== BYE ===========
kio (UIServer): UIServer::totalFiles 3 0
kio (UIServer): UIServer::totalDirs 3 1
kio (UIServer): UIServer::jobFinished id=3
kio (UIServer): UIServer::newJob observerAppId=kmail. Giving id=4
kio (KIOJob): stat file:/home/kdedev/.kde/share/apps/kmail/dimap/85436054
kio_file: FileProtocol::stat details=1
kio_file: ========= LIST file:/home/kdedev/.kde/share/apps/kmail/dimap/85436054=========
kio_file: ============= COMPLETED LIST ============
kio_file: =============== BYE ===========
kmail: WARNING: Can not find parent folder
kmail: 85436054 readConfig: mAnnotationFolderType=
kio (UIServer): UIServer::totalFiles 4 0
kio (UIServer): UIServer::totalDirs 4 1
kio (UIServer): UIServer::jobFinished id=4
kmail: [void KMKernel::readConfig()] 120000
kmail: KMailApplication::newInstance()
kmail: KMKernel::openReader called
QSplitter::panner 1 I
QSplitter::panner 2 I
QSplitter::panner 2 I
QSplitter::panner 2 I
kmail: Initting systray
kdeinit: PID 3599 terminated.
kmail: [void KIMProxy::registeredToDCOP(const QCString&)] kio_uiserver
kmail: dcopService: kopete, appId: kio_uiserver
kmail: [void KIMProxy::registeredToDCOP(const QCString&)] anonymous-3986
kmail: dcopService: kopete, appId: anonymous-3986
kmail: [void KIMProxy::unregisteredFromDCOP(const QCString&)] anonymous-3986
kmail: [void KIMProxy::unregisteredFromDCOP(const QCString&)] anonymous-3599
kmail: /Mail/ readConfig: mAnnotationFolderType=
kmail: processNextCheck, remaining 1
kmail: for host edinburgh.cisco.com current connections=0 and limit is 0
kmail: connection limit reached: false
kmail: processing next mail check for Cisco
kio (KLauncher): KLauncher: Got start_service_by_desktop_name('kwalletmanager',...)
klauncher: KRun::processDesktopExec: No URLs supplied to single-URL service kwalletmanager %u
kdeinit: Got EXEC_NEW 'kwalletmanager' from launcher.
Could not load library! Trying exec....
kio (KLauncher): kwalletmanager (pid 4041) up and running.
kdeinit: Got EXEC_NEW 'kio_imap4' from launcher.
kio (KLauncher): kio_imap4 (pid 4042) up and running.
kmail: check mail started - connections for host edinburgh.cisco.com now is 1
IMAP4::kdemain
kmail: [void KIMProxy::registeredToDCOP(const QCString&)] kwalletmanager
kmail: dcopService: kopete, appId: kwalletmanager
kmail: [void KIMProxy::registeredToDCOP(const QCString&)] anonymous-4041
kmail: dcopService: kopete, appId: anonymous-4041
kio_imap: IMAP4::dispatch - command=85
kio_imap: IMAP4::dispatch - command=48
kio_imap: IMAP4::dispatch - command=49
kio_imap: IMAP4::makeLogin - checking login
kio_imap: myAuth: *
kio_imap: * OK edinburgh.cisco.com IMAP4rev1 v10.220 server ready
kio_imap: imapParser::parseLoop - unhandledResponse:
kio_imap: * OK edinburgh.cisco.com IMAP4rev1 v10.220 server ready
kio_imap:
kio_imap: Writing: 0 CAPABILITY
kio_imap:
kio_imap: * CAPABILITY IMAP4 IMAP4REV1 NAMESPACE SCAN SORT AUTH=LOGIN THREAD=ORDEREDSUBJECT
kio_imap: 0 OK CAPABILITY completed
kio_imap: IMAP4: setHost: capability
kio_imap: 'imap4'
kio_imap: 'imap4rev1'
kio_imap: 'namespace'
kio_imap: 'scan'
kio_imap: 'sort'
kio_imap: 'auth=login'
kio_imap: 'thread=orderedsubject'
kio_imap: IMAP4::makeLogin - attempting login
kio_imap: IMAP4::makeLogin - open_PassDlg said user=nicbrown pass=xx
kio_imap: Writing: 1 LOGIN "nicbrown" XXXXX[Removed]XXXXX
kio_imap:
kio_imap: 1 OK LOGIN completed
kio_imap: IMAP4::dispatch - command=77
kio_imap: IMAP4Protocol::special
kio (KIOJob): error 8 ACL
kio_imap: IMAP4::dispatch - command=67
kio (KSycoca): Trying to open ksycoca from /var/tmp/kdecache-kdedev/ksycoca
kio_imap: IMAP4::get - imap://nicbrown@edinburgh.cisco.com:143/Mail/;UID=0:0
kio_imap: URL: box= Mail, section= , type= , uid= 0:0, validity=
kio_imap: IMAP4::parseURL: box Mail
kio_imap: Writing: 2 LIST "" "Mail"
kio_imap:
kio_imap: * LIST (\NoSelect) "/" Mail
kio_imap: 2 OK LIST completed
kio_imap: IMAP4::parseURL - return 1
kio_imap: IMAP4Protocol::assureBox - opening box
kio_imap: imapParser::sendCommand - setting current box to Mail
kio_imap: Writing: 3 SELECT "Mail"
kio_imap:
kio_imap: 3 NO SELECT failed: Can't open Mail: not a selectable mailbox
kio_imap: imapParser::parseResult - current box is now
kio_imap: Writing: 4 LIST "" "Mail"
kio_imap:
kio_imap: * LIST (\NoSelect) "/" Mail
kio_imap: 4 OK LIST completed
kio (KIOJob): error 63 Unable to open folder Mail. The server replied: SELECT failed: Can't open Mail: not a selectable mailbox
kio_imap: IMAP4::dispatch - command=77
kio_imap: IMAP4Protocol::special
kio (KIOJob): error 8 ANNOTATEMORE
kmail: processNextCheck, remaining 0
kmail: account Cisco finished check
kmail: connections to server edinburgh.cisco.com now 0
kmail: [void KIMProxy::unregisteredFromDCOP(const QCString&)] anonymous-4041
kdeinit: PID 4041 terminated.
kparts: KPart::slotWidgetDestroyed(), deleting part unnamed
kparts: Part::~Part 0x81b2d20
kio_imap: IMAP4::dispatch - command=50
kio_imap: Writing: 5 LOGOUT
kio_imap:
kio_imap: * BYE edinburgh.cisco.com IMAP4rev1 server terminating connection
kio_imap: 5 OK LOGOUT completed
kdecore (KConfigSkeleton): KConfigSkeleton::writeConfig()
kdecore (KConfigSkeleton): KConfigSkeleton::readConfig()
kmail: KMKernel::~KMKernel
kio (KDirWatch): KDirWatch deleted (FAM closed)
kio_imap: IMAP4::dispatch - command=51
kio_imap: IMAP4::slave_status
Can this now have its status changed from "UNCONFIRMED" to "NEW" as I think I've provide plenty evidence of the problem. I'm no IMAP expert, but it appears kmail is trying to SELECT a name that the server has informed it is "\noselect" > IMAP4::get - imap://nicbrown edinburgh cisco com:143/Mail/;UID=0:0
OK, kio_imap returns message/directory when noselect is set and noinferiors is NOT set.
But it seems kmail ignores that.
It only has code for message/digest, which is returned when both noselect
and noinferiors are set.
Ah, hmm, wait, this might be as simple as this fix:
===================================================================
RCS file: /home/kde/kdepim/kmail/kmfoldercachedimap.cpp,v
retrieving revision 1.125.2.27
diff -u -p -r1.125.2.27 kmfoldercachedimap.cpp
--- kmfoldercachedimap.cpp 7 Oct 2004 11:16:14 -0000 1.125.2.27
+++ kmfoldercachedimap.cpp 7 Oct 2004 18:30:30 -0000
@@ -1520,7 +1520,7 @@ void KMFolderCachedImap::listDirectory2(
// << "\nSetting imapPath " << mSubfolderPaths[i] << endl;
// Write folder settings
f->setAccount(mAccount);
- f->setNoContent(mSubfolderMimeTypes[i] == "inode/directory");
+ f->setNoContent(mSubfolderMimeTypes[i] == "inode/directory" || mSubfolderMimeTypes[i] == "message/directory");
f->setNoChildren(mSubfolderMimeTypes[i] == "message/digest");
f->setImapPath(mSubfolderPaths[i]);
}
Can you try it?
Thanks.
If this works, kmfolderimap.cpp:709 might need the same fix, for online imap.
> OK, kio_imap returns message/directory when noselect is set and noinferiors is NOT set.
Are you sure?
In the code below it appear that it returns inode/directory if noselect is set and noinferior is not set.
I'll try your fix anyway and let you know.
imap4.cc:2056
<snip>
if (!item.noSelect ())
{
atom.m_uds = UDS_MIME_TYPE;
if (!item.noInferiors ())
{
atom.m_str = "message/directory";
} else {
atom.m_str = "message/digest";
}
atom.m_long = 0;
entry.append (atom);
mailboxName += '/';
// explicitly set this as a directory for KFileDialog
atom.m_uds = UDS_FILE_TYPE;
atom.m_str = QString::null;
atom.m_long = S_IFDIR;
entry.append (atom);
}
else if (!item.noInferiors ())
{
atom.m_uds = UDS_MIME_TYPE;
atom.m_str = "inode/directory";
atom.m_long = 0;
entry.append (atom);
mailboxName += '/';
// explicitly set this as a directory for KFileDialog
atom.m_uds = UDS_FILE_TYPE;
atom.m_str = QString::null;
atom.m_long = S_IFDIR;
entry.append (atom);
}
else
{
atom.m_uds = UDS_MIME_TYPE;
atom.m_str = "unknown/unknown";
atom.m_long = 0;
entry.append (atom);
}
</snip>
> In the code below it appear that it returns inode/directory if noselect is set and noinferior is not set.
You're right, the double-negation in the if() confused me [this isn't my code].
Then this is just a "NoContent" folder (from the kmail point of view). So kmail knows
it has no mail in it. However it needs to be listed (to find its children). So the bug would
be in kio_imap4, which should list a folder without selecting it first. Carsten? :)
David Faure sagte: >> In the code below it appear that it returns inode/directory if noselect >> is set and noinferior is not set. > > You're right, the double-negation in the if() confused me [this isn't my > code]. > > Then this is just a "NoContent" folder (from the kmail point of view). So > kmail knows > it has no mail in it. However it needs to be listed (to find its > children). So the bug would > be in kio_imap4, which should list a folder without selecting it first. > Carsten? :) I don't know where the "select" comes from as this is not needed (and not used afaik) for a listing. This problem is not present in online imap so this has to be kmail - dimap specific. BTW, I already tested this with a UW imap and could not reproduce the error. > I don't know where the "select" comes from as this is not needed (and not
> used afaik) for a listing. This problem is not present in online imap so
> this has to be kmail - dimap specific.
Hmm, the request is IMAP4::get - imap://nicbrown edinburgh cisco com:143/Mail/;UID=0:0
Looking at cachedimapjob, this seems to be called from CachedImapJob::checkUidValidity.
But this isn't called for noContent folders... (kmfoldercachedimap.cpp:637)
Nick, can you check if that line calls checkUidValidity for the problematic folder?
Use e.g.
kdDebug() << location() << " calling checkUidValidity ##########" << endl;
to see which folder it's about - it's normal to call it for the other folders.
Another way is to enable the kdDebug in KMFolderCachedImap::newState
to see exactly which steps of the sync process happen.
Will do. I'm a newbie when it comes to kmail and kde code, but I'll also run it under gdb and see if I can't find the bug myself, can you point me to a good place for an intial break point for sync/checkmail button press? > Will do.
> I'm a newbie when it comes to kmail and kde code, but I'll also run it under gdb and see if I can't find the bug myself, can you point me to a good place for an intial break point for sync/checkmail button press?
Personally I prefer to use kdDebug to print out what's happening, rather than using gdb.
If you do want to use gdb, the breakpoint for a cachedimap check would be KMFolderCachedImap::serverSyncInternal,
but then you have to understand more of the code (e.g. the fact that every operation is asynchronous,
so serverSyncInternal is called back after each operation finishes). Plus it will be hit for every folder...
(break on KMFolderCachedImap::serverSync itself to get to the right folder first, then).
It's imho much faster to just print out the state changes and see what's happening.
Here the debug log with both the suggest debugs added.
kmail: KMKernel::KMKernel
kdecore (KConfigSkeleton): Creating KConfigSkeleton (0x814c248)
kdecore (KConfigSkeleton): KConfigSkeleton::readConfig()
libkdenetwork: creating new pgp object
libkdenetwork: Kpgp: gpg found
kmail: No Qt-native utf-7 codec found; registering QUtf7Codec from libkdenetwork
kmail: instantating KPIM::IdentityManager
kmail: Identity::readConfig(): UOID = 1866629463 for identity named "Cisco"
kmail: pPopFilter set
kmail: /Mail/ readConfig: mAnnotationFolderType=
kmail: [void KMKernel::readConfig()] 120000
kmail: KMailApplication::newInstance()
kmail: KMKernel::openReader called
QSplitter::panner 1 I
QSplitter::panner 2 I
QSplitter::panner 2 I
QSplitter::panner 2 I
kio (KSycoca): Trying to open ksycoca from /var/tmp/kdecache-kdedev/ksycoca
kmail: Initting systray
[kdedev@edin-comm-vl10-dhcp17 kdedev]$ kmail: [void KIMProxy::unregisteredFromDCOP(const QCString&)] anonymous-18455
kmail: /Mail/ readConfig: mAnnotationFolderType=
kmail: processNextCheck, remaining 1
kmail: for host edinburgh.cisco.com current connections=0 and limit is 0
kmail: connection limit reached: false
kmail: processing next mail check for Cisco
kmail: [void KMFolderCachedImap::newState(int, const QString&)] 0x8169fe0 0 Synchronizing
kio (KLauncher): KLauncher: Got start_service_by_desktop_name('kwalletmanager', ...)
kio (KSycoca): Trying to open ksycoca from /var/tmp/kdecache-kdedev/ksycoca
klauncher: KRun::processDesktopExec: No URLs supplied to single-URL service kwalletmanager %u
kdeinit: Got EXEC_NEW 'kwalletmanager' from launcher.
Could not load library! Trying exec....
kio (KLauncher): kwalletmanager (pid 18493) up and running.
kdeinit: Got EXEC_NEW 'kio_imap4' from launcher.
kio (KLauncher): kio_imap4 (pid 18494) up and running.
kmail: [void KMFolderCachedImap::newState(int, const QString&)] 0x8169fe0 0 Connecting to edinburgh.cisco.com
kmail: check mail started - connections for host edinburgh.cisco.com now is 1
kmail: [void KIMProxy::registeredToDCOP(const QCString&)] kwalletmanager
kmail: dcopService: kopete, appId: kwalletmanager
kmail: [void KIMProxy::registeredToDCOP(const QCString&)] anonymous-18493
kmail: dcopService: kopete, appId: anonymous-18493
IMAP4::kdemain
kio_imap: IMAP4::dispatch - command=85
kio_imap: IMAP4::dispatch - command=48
kio_imap: IMAP4::dispatch - command=49
kio_imap: IMAP4::makeLogin - checking login
kio_imap: myAuth: *
kdeinit: PID 18493 terminated.
kmail: [void KIMProxy::unregisteredFromDCOP(const QCString&)] anonymous-18493
kio_imap: * OK edinburgh.cisco.com IMAP4rev1 v10.220 server ready
kio_imap: imapParser::parseLoop - unhandledResponse:
kio_imap: * OK edinburgh.cisco.com IMAP4rev1 v10.220 server ready
kio_imap:
kio_imap: Writing: 0 CAPABILITY
kio_imap:
kio_imap: * CAPABILITY IMAP4 IMAP4REV1 NAMESPACE SCAN SORT AUTH=LOGIN THREAD=ORDEREDSUBJECT
kio_imap: 0 OK CAPABILITY completed
kio_imap: IMAP4: setHost: capability
kio_imap: 'imap4'
kio_imap: 'imap4rev1'
kio_imap: 'namespace'
kio_imap: 'scan'
kio_imap: 'sort'
kio_imap: 'auth=login'
kio_imap: 'thread=orderedsubject'
kio_imap: IMAP4::makeLogin - attempting login
kio_imap: IMAP4::makeLogin - open_PassDlg said user=nicbrown pass=xx
kio_imap: Writing: 1 LOGIN "nicbrown" XXXXX[Removed]XXXXX
kio_imap:
kio_imap: 1 OK LOGIN completed
kmail: [void KMFolderCachedImap::newState(int, const QString&)] 0x8169fe0 5 Checking permissions
kio_imap: IMAP4::dispatch - command=77
kio_imap: IMAP4Protocol::special
kio (KIOJob): error 8 ACL
kmail: /home/kdedev/.kde/share/apps/kmail/dimap/85436054 calling checkUidValidity##########
kmail: [void KMFolderCachedImap::newState(int, const QString&)] 0x8169fe0 10 Checking folder validity
kio_imap: IMAP4::dispatch - command=67
kio (KSycoca): Trying to open ksycoca from /var/tmp/kdecache-kdedev/ksycoca
kio_imap: IMAP4::get - imap://nicbrown@edinburgh.cisco.com:143/Mail/;UID=0:0
kio_imap: URL: box= Mail, section= , type= , uid= 0:0, validity=
kio_imap: IMAP4::parseURL: box Mail
kio_imap: Writing: 2 LIST "" "Mail"
kio_imap:
kio_imap: * LIST (\NoSelect) "/" Mail
kio_imap: 2 OK LIST completed
kio_imap: IMAP4::parseURL - return 1
kio_imap: IMAP4Protocol::assureBox - opening box
kio_imap: imapParser::sendCommand - setting current box to Mail
kio_imap: Writing: 3 SELECT "Mail"
kio_imap:
kio_imap: 3 NO SELECT failed: Can't open Mail: not a selectable mailbox
kio_imap: imapParser::parseResult - current box is now
kio_imap: Writing: 4 LIST "" "Mail"
kio_imap:
kio_imap: * LIST (\NoSelect) "/" Mail
kio_imap: 4 OK LIST completed
kio (KIOJob): error 63 Unable to open folder Mail. The server replied: SELECT failed: Can't open Mail: not a selectable mailbox
kmail: /Mail/: updateAnnotationFolderType: '', was ( ) => mAnnotationFolderTypeChanged set to TRUE
kmail: [void KMFolderCachedImap::newState(int, const QString&)] 0x8169fe0 95 Retrieving annotations
kio_imap: IMAP4::dispatch - command=77
kio_imap: IMAP4Protocol::special
kio (KIOJob): error 8 ANNOTATEMORE
kmail: [void KMFolderCachedImap::newState(int, const QString&)] 0x8169fe0 98 Updating cache file
kmail: [void KMFolderCachedImap::newState(int, const QString&)] 0x8169fe0 100 Synchronization done
kmail: processNextCheck, remaining 0
kmail: account Cisco finished check
kmail: connections to server edinburgh.cisco.com now 0
kparts: KPart::slotWidgetDestroyed(), deleting part unnamed
kparts: Part::~Part 0x81a16e8
kio_imap: IMAP4::dispatch - command=50
kio_imap: Writing: 5 LOGOUT
kio_imap:
kio_imap: * BYE edinburgh.cisco.com IMAP4rev1 server terminating connection
kio_imap: 5 OK LOGOUT completed
kdecore (KConfigSkeleton): KConfigSkeleton::writeConfig()
kdecore (KConfigSkeleton): KConfigSkeleton::readConfig()
kmail: KMKernel::~KMKernel
kio_imap: IMAP4::dispatch - command=51
kio_imap: IMAP4::slave_status
On Sunday 10 October 2004 17:33, Carsten Burghardt wrote:
> Hi David,
>
> this bug seems to be related to 90479 as all folders are selected and this
> seems to block the listing of the subscribed folders somehow. It works fine
> with online imap.
> Can I help you with debugging somehow?
Well I know where the bug comes from, so the debugging part is done, but I could
use your help on the "how to fix it" part :)
The problem is that for any subfolder, kmfoldercachedimap knows it's "\noselect"
when listing that folder's parent. It will then setNoContent(), and will skip
mail-related operations on that folder.
But the problem here is that the *toplevel* folder is \noselect. So there's no
listing during which kmail can learn about that.
I guess we need a way to enquire for the toplevel folder's attributes before
processing it. How do you do it with online imap? Some kind of ::stat() ?
Did anyone figure out how out to get the toplevel folders attributes if its marked "\noselect"? (I'm still trying to familiarize myself with the kmail code :-) > Did anyone figure out how out to get the toplevel folders attributes if its marked "\noselect"?
Carsten and I seem to interpret differently this bug report.
Is it about the toplevel folder, the one which is named after the [d]IMAP account,
or is it about the folder (called "Mail") which is inside?
He lacks time to look into this issue apparently, and I lack knowledge about prefix usage,
so please bear with me so I can understand the issue.
In the following ascii art "*" denotes a toplevel folder, and "-" a child of that folder.
Is it like:
* My Account
- Mail
- Other folders (which are in fact /Mail/Foo I guess?)
(and the problem is when listing "Mail")
or like
* My Account (which has a path of "/Mail")
- Other folders (/Mail/Foo)
?
IIRC you said it works with online imap. But do both online imap and dimap show the same
structure in the folder tree?
It is the top level folder "/Mail" which is the root of my
account. All my mail folders are within this toplevel folder. (It
folder actually maps to the fs as /home/nicbrown/Mail/)
Online imap works just fine, and shows the structure;
*My account ("/Mail" which is /home/nicbrown/Mail/)
- inbox (which is /var/spool/mail/nicbrown)
- Sent
- Deleted Messages
- Drafts
- Work
-- Unix
-- Cisco
- Personal
-- Linux ("/Mail/Personal/Linux" which is
/home/nicbrown/Mail/Personal/Linux)
-- Fun
I have no idea what the folder tree looks like for this account with
dimap is as it fails on the top level folder :-)
In the kmailrc prefix=/Mail/ when using both imap and dimap.
Interesting: I tested dimap with a UW imap and prefix and the prefixed folder was not selected so I got no error. So it's even server specific. Puh, I'll see what I can do. Its been a while, but I just rebuilt KDE CVS head from today and this problem is still present. So I still see this error even with Kmail 1.9 which uses names spaces. Error while reading folder Work on the server: Unable to open folder Mail/Work. The server replied: SELECT failed: Can't open Mail/Work: not a selectable mailbox My uw imap server is 2004.357. I have in my config; <snip> [Account 4] 0="#mh/","#mhinbox","~/Mail" Folder= Id=1762082881 Name=Test Namespace:#mh/=/ Namespace:#mhinbox= Namespace:~/Mail=/ Type=cachedimap </snip> I suspect that this may relate to the following mozilla imap bug; https://bugzilla.mozilla.org/show_bug.cgi?id=166885 Close this? It's really old... |