[Konsole-devel] [Bug 164540] Konsole fails to start a session

Kris Moore kris at pcbsd.org
Wed Jul 9 14:02:30 UTC 2008


------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
         
http://bugs.kde.org/show_bug.cgi?id=164540         




------- Additional Comments From kris pcbsd org  2008-07-09 16:02 -------
I've just sent over a pretty long e-mail to the freebsd-kde list about this bug, with some of my findings about it so far.

http://mail.kde.org/pipermail/kde-freebsd/2008-July/002892.html

However, here's probably the important part, which I haven't been able to figure out yet:

(Cut from the e-mail)

I then started going through the kpty code, and placed in markers until I was able to determine where the failure was occurring exactly, in the kpty/kptydevice.cpp file, specifically this function:

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

bool KPtyDevicePrivate::_k_canRead()
{
    Q_Q(KPtyDevice);
    qint64 readBytes = 0;

#ifdef Q_OS_IRIX // this should use a config define, but how to check it?
    size_t available;
#else
    int available;
#endif
    if (!::ioctl(q->masterFd(), FIONREAD, (char *) &available)) {
        char *ptr = readBuffer.reserve(available);
        NO_INTR(readBytes, read(q->masterFd(), ptr, available));
        if (readBytes < 0) {
            q->setErrorString(I18N_NOOP("Error reading from PTY"));
            return false;
        }
        readBuffer.unreserve(available - readBytes); // *should* be a no-op
    }

........................ cut .......................

}
----------------------------------------------------------

The failure speficially is happening with the "ioctl" line here:

if (!::ioctl(q->masterFd(), FIONREAD, (char *) &available)) {

ioctl keeps returning -1 and setting errno to 35, which is this:
#define EAGAIN          35              /* Resource temporarily unavailable */



More information about the konsole-devel mailing list