[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kdevelop-bugs
Subject:    [Bug 269824] New: Kdevelop crashes when automatically updating
From:       Dominik Steenken <dominik () upb ! de>
Date:       2011-03-31 13:39:19
Message-ID: bug-269824-40295 () http ! bugs ! kde ! org/
[Download RAW message or body]

https://bugs.kde.org/show_bug.cgi?id=269824

           Summary: Kdevelop crashes when automatically updating
                    definition signature
           Product: kdevelop
           Version: 4.2.0
          Platform: Ubuntu Packages
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: crash
          Priority: NOR
         Component: general
        AssignedTo: kdevelop-bugs@kdevelop.org
        ReportedBy: dominik@upb.de


Application: kdevelop (4.2.0)
KDE Platform Version: 4.6.1 (4.6.1)
Qt Version: 4.7.0
Operating System: Linux 2.6.35-28-generic x86_64
Distribution: Ubuntu 10.10

-- Information about the crash:
- What I was doing when the application crashed:
  i was changing the declaration of a method and then clicked on "update
definition signature". Kdevelop crashed.

-- Backtrace:
Application: KDevelop (kdevelop), signal: Segmentation fault
[Current thread is 1 (Thread 0x7fb44bb61760 (LWP 7849))]

Thread 14 (Thread 0x7fb4334c0700 (LWP 7854)):
#0  pthread_cond_timedwait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:212
#1  0x00007fb449fe7da2 in wait (this=<value optimized out>, mutex=0x246a120,
time=1000) at thread/qwaitcondition_unix.cpp:86
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x246a120,
time=1000) at thread/qwaitcondition_unix.cpp:160
#3  0x00007fb4465ad01b in KDevelop::DUChainPrivate::CleanupThread::run
(this=0x246a100) at ../../language/duchain/duchain.cpp:286
#4  0x00007fb449fe727e in QThreadPrivate::start (arg=0x246a100) at
thread/qthread_unix.cpp:266
#5  0x00007fb448071971 in start_thread (arg=<value optimized out>) at
pthread_create.c:304
#6  0x00007fb448ce792d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#7  0x0000000000000000 in ?? ()

Thread 13 (Thread 0x7fb422825700 (LWP 7923)):
#0  0x00007fb4440bfa89 in g_main_context_prepare () from /lib/libglib-2.0.so.0
#1  0x00007fb4440bfe78 in ?? () from /lib/libglib-2.0.so.0
#2  0x00007fb4440c045c in g_main_context_iteration () from
/lib/libglib-2.0.so.0
#3  0x00007fb44a1071e6 in QEventDispatcherGlib::processEvents (this=0x301e170,
flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:417
#4  0x00007fb44a0d9a02 in QEventLoop::processEvents (this=<value optimized
out>, flags=) at kernel/qeventloop.cpp:149
#5  0x00007fb44a0d9dec in QEventLoop::exec (this=0x7fb422824db0, flags=) at
kernel/qeventloop.cpp:201
#6  0x00007fb449fe42fd in QThread::exec (this=<value optimized out>) at
thread/qthread.cpp:490
#7  0x00007fb44a0b95f8 in QInotifyFileSystemWatcherEngine::run (this=0x2fd93a0)
at io/qfilesystemwatcher_inotify.cpp:248
#8  0x00007fb449fe727e in QThreadPrivate::start (arg=0x2fd93a0) at
thread/qthread_unix.cpp:266
#9  0x00007fb448071971 in start_thread (arg=<value optimized out>) at
pthread_create.c:304
#10 0x00007fb448ce792d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 12 (Thread 0x7fb423026700 (LWP 7930)):
#0  0xffffffffff60017b in ?? ()
#1  0x00007fb423025ad0 in ?? ()
#2  0x00007fff1978d852 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 11 (Thread 0x7fb41db5a700 (LWP 7931)):
#0  0x00007fb44a03c925 in qt_gettime () at tools/qelapsedtimer_unix.cpp:125
#1  0x00007fb44a1091fd in QTimerInfoList::updateCurrentTime
(this=0x7fb41db59b20) at kernel/qeventdispatcher_unix.cpp:339
#2  0x00007fb44a109225 in QTimerInfoList::timerWait (this=0x7fb41db59b20,
tm=...) at kernel/qeventdispatcher_unix.cpp:442
#3  0x00007fb44a1073dd in timerSourcePrepareHelper (src=<value optimized out>,
timeout=0x7fb41db59c5c) at kernel/qeventdispatcher_glib.cpp:136
#4  0x00007fb44a107485 in timerSourcePrepare (source=0x7fb41db59b20,
timeout=0x7fb41db59b20) at kernel/qeventdispatcher_glib.cpp:169
#5  0x00007fb4440bfa11 in g_main_context_prepare () from /lib/libglib-2.0.so.0
#6  0x00007fb4440bfe78 in ?? () from /lib/libglib-2.0.so.0
#7  0x00007fb4440c045c in g_main_context_iteration () from
/lib/libglib-2.0.so.0
#8  0x00007fb44a1071e6 in QEventDispatcherGlib::processEvents (this=0x3010a10,
flags=<value optimized out>) at kernel/qeventdispatcher_glib.cpp:417
#9  0x00007fb44a0d9a02 in QEventLoop::processEvents (this=<value optimized
out>, flags=) at kernel/qeventloop.cpp:149
#10 0x00007fb44a0d9dec in QEventLoop::exec (this=0x7fb41db59df0, flags=) at
kernel/qeventloop.cpp:201
#11 0x00007fb449fe42fd in QThread::exec (this=<value optimized out>) at
thread/qthread.cpp:490
#12 0x00007fb449fe727e in QThreadPrivate::start (arg=0x2e539f0) at
thread/qthread_unix.cpp:266
#13 0x00007fb448071971 in start_thread (arg=<value optimized out>) at
pthread_create.c:304
#14 0x00007fb448ce792d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#15 0x0000000000000000 in ?? ()

Thread 10 (Thread 0x7fb41ca73700 (LWP 7953)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fb434417334 in QTWTF::TCMalloc_PageHeap::scavengerThread
(this=0x7fb434722160) at
../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:2359
#2  0x00007fb434417369 in QTWTF::TCMalloc_PageHeap::runScavengerThread
(context=0x7fb434730234) at
../3rdparty/javascriptcore/JavaScriptCore/wtf/FastMalloc.cpp:1464
#3  0x00007fb448071971 in start_thread (arg=<value optimized out>) at
pthread_create.c:304
#4  0x00007fb448ce792d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 9 (Thread 0x7fb41bc78700 (LWP 7960)):
#0  0xffffffffff60017b in ?? ()
#1  0x00007fb41bc77a90 in ?? ()
#2  0x00007fff1978d852 in ?? ()
Backtrace stopped: previous frame identical to this frame (corrupt stack?)

Thread 8 (Thread 0x7fb41b412700 (LWP 7970)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fb44164020e in ?? () from /usr/lib/libQtWebKit.so.4
#2  0x00007fb441640329 in ?? () from /usr/lib/libQtWebKit.so.4
#3  0x00007fb448071971 in start_thread (arg=<value optimized out>) at
pthread_create.c:304
#4  0x00007fb448ce792d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#5  0x0000000000000000 in ?? ()

Thread 7 (Thread 0x7fb419935700 (LWP 7976)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fb449fe7e3b in wait (this=<value optimized out>, mutex=0x13fcb80,
time=18446744073709551615) at thread/qwaitcondition_unix.cpp:88
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x13fcb80,
time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160
#3  0x00007fb441e16d64 in
ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x1540c00,
th=0x3eda2e0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007fb441e19f6b in ThreadWeaver::WorkingHardState::applyForWork
(this=0x14012a0, th=0x3eda2e0) at
../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007fb441e19f84 in ThreadWeaver::WorkingHardState::applyForWork
(this=0x14012a0, th=0x3eda2e0) at
../../../threadweaver/Weaver/WorkingHardState.cpp:74
#6  0x00007fb441e19f84 in ThreadWeaver::WorkingHardState::applyForWork
(this=0x14012a0, th=0x3eda2e0) at
../../../threadweaver/Weaver/WorkingHardState.cpp:74
#7  0x00007fb441e184df in ThreadWeaver::ThreadRunHelper::run
(this=0x7fb419934e00, parent=0x1540c00, th=0x3eda2e0) at
../../../threadweaver/Weaver/Thread.cpp:87
#8  0x00007fb441e18a38 in ThreadWeaver::Thread::run (this=0x3eda2e0) at
../../../threadweaver/Weaver/Thread.cpp:142
#9  0x00007fb449fe727e in QThreadPrivate::start (arg=0x3eda2e0) at
thread/qthread_unix.cpp:266
#10 0x00007fb448071971 in start_thread (arg=<value optimized out>) at
pthread_create.c:304
#11 0x00007fb448ce792d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()

Thread 6 (Thread 0x7fb419134700 (LWP 7977)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fb449fe7e3b in wait (this=<value optimized out>, mutex=0x13fcb80,
time=18446744073709551615) at thread/qwaitcondition_unix.cpp:88
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x13fcb80,
time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160
#3  0x00007fb441e16d64 in
ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x1540c00,
th=0x7fb42d12c230) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007fb441e19f6b in ThreadWeaver::WorkingHardState::applyForWork
(this=0x14012a0, th=0x7fb42d12c230) at
../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007fb441e184df in ThreadWeaver::ThreadRunHelper::run
(this=0x7fb419133e00, parent=0x1540c00, th=0x7fb42d12c230) at
../../../threadweaver/Weaver/Thread.cpp:87
#6  0x00007fb441e18a38 in ThreadWeaver::Thread::run (this=0x7fb42d12c230) at
../../../threadweaver/Weaver/Thread.cpp:142
#7  0x00007fb449fe727e in QThreadPrivate::start (arg=0x7fb42d12c230) at
thread/qthread_unix.cpp:266
#8  0x00007fb448071971 in start_thread (arg=<value optimized out>) at
pthread_create.c:304
#9  0x00007fb448ce792d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()

Thread 5 (Thread 0x7fb429343700 (LWP 9818)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fb449fe7e3b in wait (this=<value optimized out>, mutex=0x5308920,
time=18446744073709551615) at thread/qwaitcondition_unix.cpp:88
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x5308920,
time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160
#3  0x00007fb441e16d64 in
ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x47fc790,
th=0x51d7d90) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007fb441e19f6b in ThreadWeaver::WorkingHardState::applyForWork
(this=0x3c5d520, th=0x51d7d90) at
../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007fb441e19f84 in ThreadWeaver::WorkingHardState::applyForWork
(this=0x3c5d520, th=0x51d7d90) at
../../../threadweaver/Weaver/WorkingHardState.cpp:74
#6  0x00007fb441e19f84 in ThreadWeaver::WorkingHardState::applyForWork
(this=0x3c5d520, th=0x51d7d90) at
../../../threadweaver/Weaver/WorkingHardState.cpp:74
#7  0x00007fb441e19f84 in ThreadWeaver::WorkingHardState::applyForWork
(this=0x3c5d520, th=0x51d7d90) at
../../../threadweaver/Weaver/WorkingHardState.cpp:74
#8  0x00007fb441e19f84 in ThreadWeaver::WorkingHardState::applyForWork
(this=0x3c5d520, th=0x51d7d90) at
../../../threadweaver/Weaver/WorkingHardState.cpp:74
#9  0x00007fb441e19f84 in ThreadWeaver::WorkingHardState::applyForWork
(this=0x3c5d520, th=0x51d7d90) at
../../../threadweaver/Weaver/WorkingHardState.cpp:74
#10 0x00007fb441e19f84 in ThreadWeaver::WorkingHardState::applyForWork
(this=0x3c5d520, th=0x51d7d90) at
../../../threadweaver/Weaver/WorkingHardState.cpp:74
#11 0x00007fb441e184df in ThreadWeaver::ThreadRunHelper::run
(this=0x7fb429342e00, parent=0x47fc790, th=0x51d7d90) at
../../../threadweaver/Weaver/Thread.cpp:87
#12 0x00007fb441e18a38 in ThreadWeaver::Thread::run (this=0x51d7d90) at
../../../threadweaver/Weaver/Thread.cpp:142
#13 0x00007fb449fe727e in QThreadPrivate::start (arg=0x51d7d90) at
thread/qthread_unix.cpp:266
#14 0x00007fb448071971 in start_thread (arg=<value optimized out>) at
pthread_create.c:304
#15 0x00007fb448ce792d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#16 0x0000000000000000 in ?? ()

Thread 4 (Thread 0x7fb413b3f700 (LWP 9821)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fb449fe7e3b in wait (this=<value optimized out>, mutex=0x5308920,
time=18446744073709551615) at thread/qwaitcondition_unix.cpp:88
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x5308920,
time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160
#3  0x00007fb441e16d64 in
ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x47fc790,
th=0x56bed30) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007fb441e19f6b in ThreadWeaver::WorkingHardState::applyForWork
(this=0x3c5d520, th=0x56bed30) at
../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007fb441e19f84 in ThreadWeaver::WorkingHardState::applyForWork
(this=0x3c5d520, th=0x56bed30) at
../../../threadweaver/Weaver/WorkingHardState.cpp:74
#6  0x00007fb441e184df in ThreadWeaver::ThreadRunHelper::run
(this=0x7fb413b3ee00, parent=0x47fc790, th=0x56bed30) at
../../../threadweaver/Weaver/Thread.cpp:87
#7  0x00007fb441e18a38 in ThreadWeaver::Thread::run (this=0x56bed30) at
../../../threadweaver/Weaver/Thread.cpp:142
#8  0x00007fb449fe727e in QThreadPrivate::start (arg=0x56bed30) at
thread/qthread_unix.cpp:266
#9  0x00007fb448071971 in start_thread (arg=<value optimized out>) at
pthread_create.c:304
#10 0x00007fb448ce792d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#11 0x0000000000000000 in ?? ()

Thread 3 (Thread 0x7fb41333e700 (LWP 9830)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fb449fe7e3b in wait (this=<value optimized out>, mutex=0x5308920,
time=18446744073709551615) at thread/qwaitcondition_unix.cpp:88
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x5308920,
time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160
#3  0x00007fb441e16d64 in
ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x47fc790,
th=0x585f450) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007fb441e19f6b in ThreadWeaver::WorkingHardState::applyForWork
(this=0x3c5d520, th=0x585f450) at
../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007fb441e19f84 in ThreadWeaver::WorkingHardState::applyForWork
(this=0x3c5d520, th=0x585f450) at
../../../threadweaver/Weaver/WorkingHardState.cpp:74
#6  0x00007fb441e19f84 in ThreadWeaver::WorkingHardState::applyForWork
(this=0x3c5d520, th=0x585f450) at
../../../threadweaver/Weaver/WorkingHardState.cpp:74
#7  0x00007fb441e184df in ThreadWeaver::ThreadRunHelper::run
(this=0x7fb41333de00, parent=0x47fc790, th=0x585f450) at
../../../threadweaver/Weaver/Thread.cpp:87
#8  0x00007fb441e18a38 in ThreadWeaver::Thread::run (this=0x585f450) at
../../../threadweaver/Weaver/Thread.cpp:142
#9  0x00007fb449fe727e in QThreadPrivate::start (arg=0x585f450) at
thread/qthread_unix.cpp:266
#10 0x00007fb448071971 in start_thread (arg=<value optimized out>) at
pthread_create.c:304
#11 0x00007fb448ce792d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#12 0x0000000000000000 in ?? ()

Thread 2 (Thread 0x7fb412937700 (LWP 9858)):
#0  pthread_cond_wait@@GLIBC_2.3.2 () at
../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:162
#1  0x00007fb449fe7e3b in wait (this=<value optimized out>, mutex=0x5308920,
time=18446744073709551615) at thread/qwaitcondition_unix.cpp:88
#2  QWaitCondition::wait (this=<value optimized out>, mutex=0x5308920,
time=18446744073709551615) at thread/qwaitcondition_unix.cpp:160
#3  0x00007fb441e16d64 in
ThreadWeaver::WeaverImpl::blockThreadUntilJobsAreBeingAssigned (this=0x47fc790,
th=0x588d9d0) at ../../../threadweaver/Weaver/WeaverImpl.cpp:365
#4  0x00007fb441e19f6b in ThreadWeaver::WorkingHardState::applyForWork
(this=0x3c5d520, th=0x588d9d0) at
../../../threadweaver/Weaver/WorkingHardState.cpp:71
#5  0x00007fb441e184df in ThreadWeaver::ThreadRunHelper::run
(this=0x7fb412936e00, parent=0x47fc790, th=0x588d9d0) at
../../../threadweaver/Weaver/Thread.cpp:87
#6  0x00007fb441e18a38 in ThreadWeaver::Thread::run (this=0x588d9d0) at
../../../threadweaver/Weaver/Thread.cpp:142
#7  0x00007fb449fe727e in QThreadPrivate::start (arg=0x588d9d0) at
thread/qthread_unix.cpp:266
#8  0x00007fb448071971 in start_thread (arg=<value optimized out>) at
pthread_create.c:304
#9  0x00007fb448ce792d in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:112
#10 0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7fb44bb61760 (LWP 7849)):
[KCrash Handler]
#6  KDevelop::IndexedIdentifier::operator KDevelop::Identifier
(this=0xe00000000) at ../../language/duchain/identifier.cpp:1124
#7  0x00007fb4465f1a70 in hash (this=0x7fff1968dcc0) at
../../language/duchain/identifier.cpp:216
#8  QualifiedIdentifierItemRequest (this=0x7fff1968dcc0) at
../../language/duchain/identifier.cpp:230
#9  KDevelop::QualifiedIdentifier::makeConstant (this=0x7fff1968dcc0) at
../../language/duchain/identifier.cpp:952
#10 0x00007fb4465f1c59 in KDevelop::QualifiedIdentifier::index
(this=0x7fff1968dbe0) at ../../language/duchain/identifier.cpp:502
#11 0x00007fb4465f1e7d in
KDevelop::IndexedQualifiedIdentifier::IndexedQualifiedIdentifier
(this=0x7fff1968dd20, id=...) at ../../language/duchain/identifier.cpp:1156
#12 0x00007fb446613bc7 in KDevelop::DeclarationId::getDeclaration
(this=0x3fab388, top=0x7fb42cb56c90, instantiateIfRequired=true) at
../../language/duchain/declarationid.cpp:135
#13 0x00007fb41e38ea47 in ?? () from /usr/lib/kde4/kdevcpplanguagesupport.so
#14 0x00007fb44b281f35 in KDevelop::IAssistantAction::qt_metacall
(this=0x3fab360, _c=QMetaObject::InvokeMetaMethod, _id=<value optimized out>,
_a=<value optimized out>) at ./iassistant.moc:74
#15 0x00007fb44a0ecbde in QObject::event (this=0x3fab360, e=0x7fff1968dbe0) at
kernel/qobject.cpp:1219
#16 0x00007fb449441fdc in QApplicationPrivate::notify_helper (this=0x104b730,
receiver=0x3fab360, e=0x5d6d9f0) at kernel/qapplication.cpp:4396
#17 0x00007fb449447aed in QApplication::notify (this=0x7fff1968ff60,
receiver=0x3fab360, e=0x5d6d9f0) at kernel/qapplication.cpp:4277
#18 0x00007fb44a8e92c6 in KApplication::notify (this=0x7fff1968ff60,
receiver=0x3fab360, event=0x5d6d9f0) at ../../kdeui/kernel/kapplication.cpp:311
#19 0x0000000000404c89 in _start ()

Reported using DrKonqi

-- 
Configure bugmail: https://bugs.kde.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.

_______________________________________________
KDevelop-bugs mailing list
KDevelop-bugs@kdevelop.org
https://barney.cs.uni-potsdam.de/mailman/listinfo/kdevelop-bugs
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic