"I've actually successfully 'fixed' a drive that had bad sectors, and was failing smart tests and giving me trouble in recovery with a full format from windows, though the linux badblocks command may work as well. I've also had drives drop dead so I wouldn't say this is a solution that always works. This is useful ONLY when there's a limited amount of damage (I have one sector) and it isn't major physical, electrical or functional issues.
Generally failing a SMART self test is a sign something is wrong, and backing up with the appropriate tool and not trusting the drive is a very good idea - In this case this drive is used to store downloads and other transient data I will not miss. Unfortunately, I did not try gsmartcontrol on the drive pre data recovery and wipe and the tests the software my laptop's manufacturer gave is different from what I usually use but it failed a 'targeted read test' and 'smart short test'
The SMART values ""Current Pending Sector Count"" Indicates you have bad sectors now and you might get an error saying ""Uncorrectable error in data"". This is a drive that works now, but you can see some values are not healthy
And the logs show that there were issues - rerunning smart tests post format is a good idea
So its possible to fix this, but time will tell if the drive can survive. I certainly wouldn't put any critical data on it."