simulationcraft / simc

Simulationcraft engine/GUI
GNU General Public License v3.0
1.38k stars 692 forks source link

JSON reports seem to be broken for demon hunters #3587

Closed ghost closed 7 years ago

ghost commented 7 years ago

I'm using the command line version (engine/simc) with automatically generated .simc files and I'm only having issues with JSON output for demon hunters only. Other outputs (HTML, XML, text) work fine for Demon Hunters.

Version: 971addd9209edc4c4cf9f5934d8de7541060a96c Two examples I have of simc files causing this:

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

demonhunter="Craniomancer"
level=110
race=night_elf
role=attack
position=back
spec=havoc
talents=2223311
artifact=3:137542:143531:136721:0:999:1:1000:1:1001:1:1002:1:1003:1:1004:1:1005:1:1006:1:1007:1:1010:1:1011:1:1012:1:1013:1:1014:1:1015:1:1329:1:1361:1:1000:5:1001:3:1002:3:1003:3:1004:3:1005:3:1006:3:1007:3:1008:4:1011:1:1012:1:1013:1:1014:1:1015:1:1016:1:1330:1:1362:10
# Rugged Skullblasters of the Peerless
head=,id=144332,bonus_id=601/1689/3408
# Beleron's Choker of Misery
neck=,id=140899,bonus_id=3514/1472/1813
# Shoulderguards of Second Sight
shoulders=,id=138380,bonus_id=3514/1472/1813
# Mainsail Cloak
back=,id=134406,bonus_id=3534/1542/3337,enchant=150agi
# Tunic of Second Sight
chest=,id=138376,bonus_id=3514/1472/1813
# Blackfin Wristband
wrists=,id=142146,bonus_id=3452/1512/3337
# Raven's Veil Gloves
hands=,id=139242,bonus_id=3510/42/1537/3337
# Biornskin Belt
waist=,id=134199,bonus_id=3418/1542/3337
# Legguards of Endless Horrors
legs=,id=134451,bonus_id=3509/1532/3336
# Stutterstep Treads
feet=,id=140860,bonus_id=3443/1502/3337
# Anger of the Half-Giants
finger1=,id=137038,bonus_id=3458/3455,gems=150crit,enchant=200crit
# Sephuz's Secret
finger2=,id=132452,bonus_id=3458/3455,gems=200agi,enchant=200crit
# Eye of Command
trinket1=,id=142167,bonus_id=3453/1482/3336
# Unstable Arcanocrystal
trinket2=,id=141482,bonus_id=3466/1477/3336
# Twinblades of the Deceiver
main_hand=,id=127829,bonus_id=719/1524/1523/1528
# Twinblades of the Deceiver
off_hand=,id=127830
json=/tmp/tmp.QTmiElFFaG
output=/dev/null

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

demonhunter="Reitra"
level=110
race=night_elf
role=attack
position=back
spec=havoc
talents=2223321
artifact=3:139253:137377:137542:0:999:1:1000:1:1001:1:1002:1:1003:1:1004:1:1005:1:1006:1:1007:1:1010:1:1011:1:1012:1:1013:1:1014:1:1015:1:1329:1:1000:4:1001:3:1002:3:1003:3:1004:4:1005:3:1006:3:1007:3:1008:4:1011:1:1012:1:1013:1:1014:1:1015:1:1016:1:1330:1
# Mask of Second Sight
head=,id=138378,bonus_id=3514/1477/3336
# Chain of the Green Flight
neck=,id=137311,bonus_id=3416/1808/1517/3336,gems=100crit,enchant=mark_of_the_claw
# Delusions of Grandeur
shoulders=,id=144279,bonus_id=3529/3530
# Fashionable Autumn Cloak
back=,id=144403,bonus_id=3444/1482/1813,enchant=200agi
# Tunic of Second Sight
chest=,id=138376,bonus_id=3514/1487/3337
# Cuffs of the Arcane Storm
wrists=,id=134459,bonus_id=3417/1808/1522/3336,gems=100crit
# Gloves of Second Sight
hands=,id=138377,bonus_id=3514/1472/1813
# Raven's Veil Belt
waist=,id=139243,bonus_id=3418/1532/3337
# Splotched Bloodfur Leggings
legs=,id=139201,bonus_id=1806/1512/3336
# Grove-Tender's Moccasins
feet=,id=140861,bonus_id=3514/1482/3336
# Dreadful Cyclopean Signet
finger1=,id=139237,bonus_id=1805/1808/1487,gems=100crit,enchant=150crit
# Band of the Wyrm Matron
finger2=,id=134524,bonus_id=3415/1808/1507/1813,gems=100crit,enchant=150crit
# Darkmoon Deck: Dominion
trinket1=,id=128705,bonus_id=689/601/672
# Horn of Valor
trinket2=,id=133642,bonus_id=3416/1517/3336
# Twinblades of the Deceiver
main_hand=,id=127829,bonus_id=719/1520/1520/1517
# Twinblades of the Deceiver
off_hand=,id=127830
json=/tmp/tmp.QTmiElFFaG
output=/dev/null

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

json output in both cases abruptly end:

(snip)
                    },
                    {
                        "name": "prepared",
                        "spell_data": {
                            "id": 0,
                            "found": false,
                            "ok": false
                        },
                        "source": "Craniomancer",
                        "cooldown": {
                            "name": "buff_prepared",
                            "duration": 0.0,
                            "charges": 1
                        },
                        "uptime_array": {
                            "mean": 0.0,
                            "mean_std_dev": 0.0,
<ends here>

                    {
                        "name": "prepared",
                        "spell_data": {
                            "id": 0,
                            "found": false,
                            "ok": false
                        },
                        "source": "Craniomancer",
                        "cooldown": {
                            "name": "buff_prepared",
                            "duration": 0.0,
                            "charges": 1
                        },
                        "uptime_array": {
                            "mean": 0.0,
                            "mean_std_dev": 0.0,
                            "min": 0.0,
                            "max": 0.0,
                            "data": []
                        },
                        "defau<ends here>

Output log (when text output is enabled) doesn't report any errors. simc command return value is 0 too. Replacing the json line by output=file and html=file and xml=file

all produce complete reports. JSON output works for at least retribution paladin, enhancement shaman, feral druid, beast mastery hunter, assassination rogue without issues. One possible clue is that I've noticed that all the abrupt ended outputs I have on demon hunter, all of them happen while processing "prepared".

navv1234 commented 7 years ago

You can use the newer json outputter (json2 option), that will likely replace the old outputter.

scamille commented 7 years ago

There was a div by zero in the DH module. Our json printer do not like to print NAN it seems.