Share your experience!
Feedback for devs and general FYI for other users.
It appears that the Marshmallow release for Z5 (compact in my case) has seen the re-introduction of an old bug from Jelly bean days.
If network does NOT support Fast dormancy, then phone with it forecefully enabled in the firmware will suffer horrific battery drain when on 3G. First saw this on Z1 compact a couple of years back, and only "fix" at the time was root + system file modification. Sony eventually fixed it. Hoping it won't take so long this time, else this phone becomes useless due to a 8-10 hours battery life when idle.
Can see in images below that the phone sleeps perfectly well on Wi-FI, but as soon as 3G is involved the battery tanks.
WLD confirms fast dormancy as the culprit. Did not have this issue on Lollipop.
Solved! Go to Solution.
Thanks for sending me a log!
I have forwarded it internally and will let you know as soon as i have more information.
Before the usual candidates manage to get in with the standard canned responses.
Yes the phone has been factory reset, yes it's been through a "repair" on PCC, No it's not rooted or modified, yes it does the same in "safe mode"
I'm sorry to hear that your battery is draining 
Which country are you in and which operator do you use?
Would it be possible for you to send me a log from your phone when it's been on 3G with no WiFi for a while?
To do this:
Settings > About phone > Build number, tap 7 times on the build number
Go back to Settings and select Developer options and turn on "USB debugging". Then tap "Logger buffer sizes" and set this to "4 M".
Leave phone on 3G with no WiFi for a while
Settings > Developer options, select "Take bug report". When the report is ready share (may take a minute or so) you get a notification that you can tap and share to Google Drive. Please send me a link to this file in a private message.
Hi Rickard,
Thank you for your reply. I am in UK, phone purchased from Amazon UK, on Three network. I am currently using the SG firmware as I wanted to see if the issue was fixed in .185 release (which it does not appear to be)
I've set the log size to 4M as you listed, and will fire a log over later today.
Steve
When the display is off, the log is a stream of fast-dormancy messages thousands of lines long.
Small snapshot:
fast-dormancy: write the command of checkto piple
fast-dormancy: [FDM]: The content received is buff[0] = c:check
fast-dormancy: [FDM]: The traffic status 2 !!!
fast-dormancy: [FDM]: received fdmsg.type: 3, fdmsg.buf[0]: 2
fast-dormancy: [FDM]: GoDormant? 1
fast-dormancy: [FDM]: fdmAlgDecisionTimer: count = 1 (after decrease)
fast-dormancy: [FDM]: FDM send Wake timer waitTime:3, restartTime:0, cmd=0
fast-dormancy: will start alarm timer !!!!
fast-dormancy: timer_type : 0
fast-dormancy: The firedInterval is 1000
fast-dormancy: write the command of startto piple
fast-dormancy: [FDM]: The content received is buff[0] = s:start
fast-dormancy: Message body receive from fdm is 6 , 0
fast-dormancy: [FDM]: The traffic status 1 !!!
fast-dormancy: write the command of checkto piple
fast-dormancy: [FDM]: The content received is buff[0] = c:check
fast-dormancy: [FDM]: The traffic status 2 !!!
fast-dormancy: [FDM]: received fdmsg.type: 3, fdmsg.buf[0]: 2
fast-dormancy: [FDM]: GoDormant? 1
fast-dormancy: [FDM]: fdmAlgDecisionTimer: count = 2 (after decrease)
fast-dormancy: [FDM]: FDM send Wake timer waitTime:3, restartTime:0, cmd=0
fast-dormancy: will start alarm timer !!!!
fast-dormancy: timer_type : 0
fast-dormancy: The firedInterval is 1000
fast-dormancy: write the command of startto piple
fast-dormancy: Message body receive from fdm is 6 , 0
fast-dormancy: [FDM]: The content received is buff[0] = s:start
fast-dormancy: [FDM]: The traffic status 1 !!!
fast-dormancy: write the command of checkto piple
fast-dormancy: [FDM]: The content received is buff[0] = c:check
fast-dormancy: [FDM]: The traffic status 1 !!!
fast-dormancy: [FDM]: received fdmsg.type: 3, fdmsg.buf[0]: 1
fast-dormancy: [FDM]: GoDormant? 1
fast-dormancy: [FDM]: fdmAlgDecisionTimer: count = 2 (after decrease)
fast-dormancy: [FDM]: fdmAlgDecisionTimer: count = 2
fast-dormancy: write the command of checkto piple
fast-dormancy: [FDM]: The content received is buff[0] = c:check
fast-dormancy: [FDM]: The traffic status 2 !!!
fast-dormancy: [FDM]: received fdmsg.type: 3, fdmsg.buf[0]: 2
fast-dormancy: [FDM]: GoDormant? 1
fast-dormancy: [FDM]: fdmAlgDecisionTimer: count = 1 (after decrease)
fast-dormancy: [FDM]: FDM send Wake timer waitTime:3, restartTime:0, cmd=0
fast-dormancy: will start alarm timer !!!!
fast-dormancy: timer_type : 0
fast-dormancy: The firedInterval is 1000
fast-dormancy: write the command of startto piple
fast-dormancy: [FDM]: The content received is buff[0] = s:start
fast-dormancy: Message body receive from fdm is 6 , 0
fast-dormancy: [FDM]: The traffic status 1 !!!
fast-dormancy: write the command of checkto piple
fast-dormancy: [FDM]: The content received is buff[0] = c:check
fast-dormancy: [FDM]: The traffic status 2 !!!
fast-dormancy: [FDM]: received fdmsg.type: 3, fdmsg.buf[0]: 2
fast-dormancy: [FDM]: GoDormant? 1
fast-dormancy: [FDM]: fdmAlgDecisionTimer: count = 2 (after decrease)
fast-dormancy: [FDM]: FDM send Wake timer waitTime:3, restartTime:0, cmd=0
fast-dormancy: will start alarm timer !!!!
fast-dormancy: timer_type : 0
fast-dormancy: The firedInterval is 1000
fast-dormancy: write the command of startto piple
fast-dormancy: Message body receive from fdm is 6 , 0
fast-dormancy: [FDM]: The content received is buff[0] = s:start
fast-dormancy: [FDM]: The traffic status 1 !!!
fast-dormancy: write the command of checkto piple
fast-dormancy: [FDM]: The content received is buff[0] = c:check
fast-dormancy: [FDM]: The traffic status 1 !!!
fast-dormancy: [FDM]: received fdmsg.type: 3, fdmsg.buf[0]: 1
fast-dormancy: [FDM]: GoDormant? 1