Jump to content

uTorrent 3.4.x crashes on startup on certain CPUs


yetisyny

Recommended Posts

The main computer I use has as its CPU, the AMD Sempron 2800+ (codename Thorton, see here: https://en.wikipedia.org/wiki/Sempron#Thoroughbred_B.2FThorton_.28130_nm.29 ), a Socket A CPU, which supports, in addition to the standard x86 instruction set, MMX, 3DNow! and SSE instruction sets. It does NOT support AMD64/EM64T, SSE2, SSE3, hardware-based Data Execution Prevention, hyperthreading, virtualization, or various other additional features. So basically, it supports the exact same instruction sets as a standard Intel Pentium III (including MMX and SSE), plus the AMD-specific 3DNow! instruction set.

 

Anyway, uTorrent versions all the way up to 3.3.x worked perfectly fine on this CPU, no problems whatsoever. But uTorrent versions 3.4.x all crash on startup, whether running them as an installer, or replacing the uTorrent.exe file in the uTorrent folder in the Application Data folder directly. I have tested this on another computer that has a higher-end AMD CPU (an AMD Athlon 64) that was built a year or two later (the Sempron was the budget line versus the more expensive Athlon 64, replacing the previous budget line Duron that was cheaper than the high-end Athlon XP) and uTorrent 3.4.x works fine on the Athlon 64. Also I should note that some of the later Semprons do support the AMD64 instruction set and 64-bit operating systems, but my Sempron is an early-model sempron from soon after the switch from Athlon XP and Duron to Athlon 64 and Sempron, before 64-bit support was added to the Semprons.

 

So my point is, uTorrent 3.4.x doesn't work on AMD Sempron processors, at least not the ones that lack AMD64 support. Previous versions of uTorrent, from the first version up thru the latest 3.3.2 build (build 30586) all work perfectly fine on AMD Sempron processors. So obviously you have used some compiler optimizations that require certain CPU instruction sets not found in AMD Semprons.

 

I would very kindly request you to stop doing CPU-specific compiler optimizations that cause the program to stop working on certain CPUs. Perhaps you are using SSE2 or SSE3 instructions. The later AMD Semprons added support for this but the Socket A Semprons only support the original SSE (just as in Intel CPUs, the Pentium III supported only SSE, while SSE2 was added in the Pentium IV). So please do not use SSE2 or SSE3 instructions or anything like that. Please have the compiled binary releases you put out not require any instruction set more advanced than what the Pentium III has (MMX and the original SSE). My computer's motherboard and its CPU are from early 2005, when I purchased them. Yes, you can say, that is 9 years ago. However, the SSE2 and later instruction sets are not supported by ANY AMD Durons, Athlon XPs, or Socket A-based Semprons, they are not supported by any Intel chips prior to the Pentium IV, they are not supported by Intel Celeron chips prior to the ones with the Willamette core, they are not supported by any Cyrix x86-compatible processors, they are not supported by many of VIA's x86-compatible processors, and anyway, the point is, SSE2 and later did not become a standard thing included in almost all CPUs until around the time Windows Vista came out. So if uTorrent still supports Windows XP which came out in 2001, it makes no sense for it to require the SSE2 or some later CPU instruction set which still had plenty of CPUs not supporting it being made in 2005 or later.

 

To summarize: do not require any CPU instruction set not present in the Intel Pentium III, because anything introduced after that didn't even reach all of Intel's product lines until some time in 2002 and AMD was still making CPUs not supporting it as late as 2005. Any instruction set introduced in the Pentium IV, such as SSE2, please do not use, it makes the program not work on some computers, and any increase in the speed of uTorrent by such CPU optimizations is incredibly minimal, while making the program not work for plenty of users. And many people other than me will probably experience this same issue but not have enough technical knowledge to figure out why the problem is happening (the program is using an instruction set not supported by their CPU).

 

So please fix this. Seriously. I don't know the exact percentage of uTorrent users who will be affected by this, but having the program not work at all when previous versions did, that is not good. Anyway, I KNOW that you won't release the source code (I could easily fix the problem if you released the source code by simply compiling it for a different CPU target) so how about you just stop using compiler optimizations that require newer CPU instruction sets such as SSE2 that didn't become standard in new computers until after 2005? Even if only 1% of uTorrent users are affected by this (and I am guessing it is probably a higher percentage), if uTorrent crashes on startup and doesn't work at all on their computers, they won't use it anymore and you'll lose those customers permanently if you don't fix this pronto. And I KNOW you guys aren't coding stuff for newer instruction sets in assembly language, you're obviously using compiler optimizations, because pretty much nobody codes stuff for newer instruction sets in assembly. So all you have to do is fix your compiler flags, go back to the compiler flags you were using in version 3.3.2 and it will work again. I'm a programmer, I know this stuff. Yeah, you might THINK that if you optimize a program for the Pentium IV instruction set, that pretty much every computer that exists nowadays will work on it. WRONG. AMD and other manufacturers were making CPUs years later, up through 2005 at the very least, that didn't support all the instructions of the Pentium IV, you should use a Pentium III or earlier CPU target instead. You know how many people still use computers from 2005 or earlier? Millions. I do. I'm typing this on one of those computers right now. And my computer runs 99% of software perfectly fine. I've upgraded almost all other parts of my computer since then (e.g. video card, hard disk, monitor, RAM, etc.), but the motherboard and CPU are still the ones I got in 2005. Upgrading my CPU would also require a new motherboard and then I'd have to take everything out of the computer box and put it all back in, way too much hassle, I'm not going to do that just to run the latest version of uTorrent, my computer runs everything else perfectly fine. Well OK, my computer's CPU wouldn't work with Windows 8 because of its system requirements for the CPU, but Windows 7 is better than Windows 8 so whatever, I could care less about that. Just fix this OK?

Link to comment
Share on other sites

I have the same problem!

With Intel Pentium 4 3.20GHz CPU and Windows XP: uTorrent 3.4.x works well

With Intel Pentium III 666 MHz CPU and Windows XP: uTorrent 3.4.x crashes

 

All previous uTorrent versions worked fine on both computers!

I also saw, that today an other user reported uTorrent 3.4 crash in Troubleshooting forum.
But instead of answering the problem, the topic was simply deleted!
Nice support, guys...

Link to comment
Share on other sites

Ah glad to get that confirmation from you rleffer. So my hunch was right. uTorrent 3.4.x uses compiler flags to optimize for Pentium 4 and above CPUs, and probably the instruction set they use, which crashes on certain CPUs such as Athlon XP, Duron, Sempron, Celeron, Pentium III, Cyrix CPUs, VIA CPUs, etc., etc. (I could make a long list) is the SSE2 instruction set.

 

No software aimed at a general consumer audience that runs on x86 CPUs should require the SSE2 instruction set or any higher instruction set. The only instruction sets that are almost universally supported on all current x86-based computers are the ones that come on the Intel Pentium III, namely x86 plus MMX and the original SSE. When I compile software using GCC (GNU Compiler Collection) I always use the option "-march=pentium3". I don't know what compiler uTorrent is compiled on, most likely it is a Microsoft Visual C++ compiler, but it has similar options for optimizing the code to run on a certain CPU and higher. Generally it is the best programming practice to optimize for Pentium 3 or earlier, otherwise you ruin compatibility with a whole lot of computers that either have non-Intel CPUs or have older or low-end Intel CPUs such as Celerons or Pentium 3s. A lot of software optimizes for "i686", that is the standard with most open-source software, and i686 roughly translates as the Pentium Pro. You can make software marginally faster by optimizing for a Pentium 3 to make use of MMX and SSE, and then using SSE to do floating-point operations (it does them faster than x87 coprocessor instructions). That is the "-mfpmath=sse" compiler flag in GCC, which you use along with "-march=pentium3" to get fast floating-point performance. But really there is no reason to optimize for Pentium IV, there aren't really any relevant new instruction sets that make programs faster by any significant percentage when compared to optimizing for Pentium III, and all it does is break compatibility with many people's computers. Using newer instruction sets like SSE2, SSE3, etc. is entirely unnecessary for most software, only gets very minor, unnoticable performance improvements, and causes it to not work on many people's computers. Anyway, optimizing for Pentium IV is about as stupid as using the compiler option "-funroll-all-loops" in GCC. Which is to say, very stupid indeed. I have no idea why the programmers of uTorrent are making such a bad decision, optimizing for Pentium IV. There is a very long list of x86 CPUs that are still commonly found in computers people use today, which do not support all of the instruction sets of the Pentium IV, most of which are made by competitors to Intel such as AMD, but a few of which are actually made by Intel itself. And a whole lot of those CPUs DO support recent versions of Windows up thru Windows 7. Windows 8 and 8.1 don't support those CPUs but Windows 7 and earlier do. So to the uTorrent developers I ask, why do you have more stringent CPU requirements for uTorrent than Microsoft has for Windows 7, when uTorrent still runs on Windows XP? It makes no sense whatsoever.

Link to comment
Share on other sites

I have the same problem with 2 AMD 3200 XP pc's one runs win7 the other runs xp

on both pcs utorrent 3.4 crashes on startup.

I cant get it to install or upgrade from previous version 3.3.2 which worked flawless.

I don't understand why the new version would stop working on older pcs which dont support newer chipset commands

Please fix this issue there are tons of old pcs that worked great with previous versions of utorrent and these old boxes make

great torrent boxes :)

I would really like to see a fix. I cant see myself using azuerus or anyhting else for that matter.

I hope we get a fix :)

 

Link to comment
Share on other sites

I've got the same problem on my AMD Athlon XP 2500+ @ 1.8Ghz single core.

My CPU does not support SSE2 extensions. Only older SSE.

I am running on Microsoft Windows XP Professional Service Pack 3.

 

Problem occurs on latest 3.4, and reverting to 3.3.2 and disabling auto-update fixes the problem.

Link to comment
Share on other sites

No software aimed at a general consumer audience that runs on x86 CPUs should require the SSE2 instruction set or any higher instruction set. The only instruction sets that are almost universally supported on all current x86-based computers are the ones that come on the Intel Pentium III, namely x86 plus MMX and the original SSE.

 

 

Since when do you decide the lowest common denomenator, are you the developer ?

 

Why stop at SSE?

 

why not take your logic and demand even older processors are supported to gain even more "general consumer" audience ? why not go right back to the pre-MMX-enabled processors to REALLY get the most users ? Let's support the x286 processors !

 

Why must the bar be set coincidentally at your level ?

Link to comment
Share on other sites

OK - we will look into this further, then. Can you post the dump, so we can see where it crashes for you?

is this what you mean by thedump?

 

Problem signature:

  Problem Event Name:    APPCRASH

  Application Name:    utorrent.exe

  Application Version:    3.4.1.30657

  Application Timestamp:    531e7247

  Fault Module Name:    utorrent.exe

  Fault Module Version:    3.4.1.30657

  Fault Module Timestamp:    531e7247

  Exception Code:    c000001d

  Exception Offset:    001165b8

  OS Version:    6.1.7601.2.1.0.256.1

  Locale ID:    1033

  Additional Information 1:    0a9e

  Additional Information 2:    0a9e372d3b4ad19135b953a78882e789

  Additional Information 3:    0a9e

  Additional Information 4:    0a9e372d3b4ad19135b953a78882e789

 

Link to comment
Share on other sites

Since when do you decide the lowest common denomenator, are you the developer ?

 

Why stop at SSE?

 

why not take your logic and demand even older processors are supported to gain even more "general consumer" audience ? why not go right back to the pre-MMX-enabled processors to REALLY get the most users ? Let's support the x286 processors !

 

Why must the bar be set coincidentally at your level ?

Dude I don't think anyone needs a speech. the admins are trying to help. for all we know it may have nothing to do with sse2 etc. Everyone is speculating.

Uttorent is a fine program and I am sure the developers are not trying to stop people from using AMD computers or others. If it where macs then we wouldn't be having this issue but since there are to many changes in chipsets and cpus it is invevitable this problem would evenatually happpen :/

I am hopefull that the developers of utorrent are going to put out a fix and we will all be happy :)

Link to comment
Share on other sites

Dude I don't think anyone needs a speech. the admins are trying to help. for all we know it may have nothing to do with sse2 etc. Everyone is speculating.

Uttorent is a fine program and I am sure the developers are not trying to stop people from using AMD computers or others. If it where macs then we wouldn't be having this issue but since there are to many changes in chipsets and cpus it is invevitable this problem would evenatually happpen :/

I am hopefull that the developers of utorrent are going to put out a fix and we will all be happy :)

 

What you "think everyone needs" is irrelevant, and as for "speech" ?

 

Do you speak for everyone here, because you just wrote more than i did, so are you giving a "speech" too ? Are you incapable of maintaining your attention for more than a few lines of text ?

 

It's already been confirmed the recent build was unintentionally compiled with SSE2, which is why it wasn't running on people's older processors (emphasis mine):

 

Here's what happened: when we switched from compiling uTorrent with Visual Studio 2008 to using VS 2012, the default instruction set emitted changed from SSE to SSE2.

However, we didn't notice this until very recently, because relatively few people run windows with those SSE only CPUs. As more people started getting 3.4, we began getting reports that it would not work on older CPUs.

 

http://forum.utorrent.com/topic/88339-341-beta/page-9#entry482781

 

It's got nothing to do with "AMD computers" (as evidenced by users here with Intel P3 processors), and is simply a result of old hardware, we're talking about supporting SSE2 from the days of intel's Pentium4 back in 2001..... 13 years ago ! (11 years ago for Athlon 64)

 

The question remains, why have such a low bar for uTorrent to support "relatively few" users at the expense of the majority ?

Link to comment
Share on other sites

  • 2 weeks later...

Hello everybody!

 

I just want to report I have the exact same problem on my desktop. It runs windows 7, has 16 GB of DDR3 RAM and a intel core i7 2700k quad-core 3.5 ghz hyperthreading-enabled CPU, so this is apparently not something which happens only on old/low-end hardware.

 

Having said that, I can start u-torrent just fine personally if I go into the start menu and click "utorrent". I can also add a torrent then via the menu and it will start downloading as it should, everything works perfectly and stable. However, if I just download (like I always used to do) a torrent file with google chrome and click on it in the browser to open it with utorrent, the torrent program appears but freezes before bringing up the confirmation screen asking if I want to add the torrent I just opened. So it would appear likely that the problem is somehow located somewhere in that process, that is to say opening a torrent directly instead of via starting the program and then going to the "add torrent" option *after* it has started, in which case everything still works perfectly.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

Guest
This topic is now closed to further replies.
×
×
  • Create New...